JavaScript中添加事件句柄

  1. 添加事件句柄的好处:html和JavaScript分离,可读性更强
  2. 添加鼠标事件句柄的方法:

document.getElementById("id").addEventListener("click",fucntionName)
  1. 去除鼠标事件句柄的方法:
element.removeEventListener("mousemove", myFunction)
  1. 一个元素标签可以添加多个事件句柄,彼此独立,并不会覆盖

  2. 也可以给windows事件添加句柄
    比如

<!DOCTYPE html>
<html>
<body>

<p>实例在window对象中使用 addEventListener() 方法。</p>

<p>尝试重置浏览器的窗口触发 "resize" 事件句柄。</p>

<p id="demo"></p>

<script>
window.addEventListener("resize", function(){
    document.getElementById("demo").innerHTML = Math.random();
});
</script>

</body>
</html>
  1. 在使用addEventListener时,传参时只能调用匿名函数进行传参
<!DOCTYPE html>
<html>
<body>

<p>实例演示了在使用 addEventListener() 方法时如何传递参数。</p>

<p>点击按钮执行计算。</p>

<button id="myBtn">点我</button>

<p id="demo"></p>

<script>
var p1 = 5;
var p2 = 7;

document.getElementById("myBtn").addEventListener("click", function() {
    myFunction(p1, p2);
});

function myFunction(a, b) {
    var result = a * b;
    document.getElementById("demo").innerHTML = result;
}
</script>

</body>
</html>

  1. 事件传递有两种方式:冒泡与捕获。
    事件传递有两种方式:冒泡与捕获。
    事件传递定义了元素事件触发的顺序。 如果你将 **

<

p>** 元素插入到 **

<

div>** 元素中,用户点击 **

<

p>** 元素, 哪个元素的 “click” 事件先被触发呢?
在 冒泡 中,内部元素的事件会先被触发,然后再触发外部元素,即:**

<

p>** 元素的点击事件先触发,然后会触发 **

<

div>** 元素的点击事件。
在 捕获 中,外部元素的事件会先被触发,然后才会触发内部元素的事件,即: **

<

div>** 元素的点击事件先触发 ,然后再触发 **

<

p>** 元素的点击事件。
addEventListener() 方法可以指定 “useCapture” 参数来设置传递类型:
addEventListener(event, function, useCapture);
默认值为 false, 即冒泡传递,当值为 true 时, 事件使用捕获传递。

  1. 跨浏览器解决方法:
    var x = document.getElementById(“myBtn”);
    if (x.addEventListener) { // 所有主流浏览器,除了 IE 8 及更早版本
    x.addEventListener(“click”, myFunction);
    } else if (x.attachEvent) { // IE 8 及更早版本
    x.attachEvent(“onclick”, myFunction);
    }

Categories: JavaScript, 前端

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值