<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
</head>
<body>
<a href="javascript:func('用a绑定');">bind by a</a>
<a href="javascript:func('用b绑定');">bind by b</a>
<input id="button" type="button" value="click" />
</body>
</html>
<script type="text/javascript">
function func(t1){
var bt = document.getElementById('button');
bt.addEventListener('click',b,false);
function b(){
alert(t1);
}
}
</script>
按标准来说,addEventListener多次绑定同一事件的同一函数,后面的绑定将覆盖前面的。
b函数是你在func函数内创建的闭包. 每次调用func都会重新创建一个b函数
如果把b函数挪出func之外则不会发生此种情况,
javascript 闭包 导致 的 重复 绑定 事件
最新推荐文章于 2024-05-24 13:39:19 发布