js代码多次绑定一个按钮。
可以用闭包解决这个问题
function handleAction (event) {
console.log('i am action', event);
}
var newHandle = function (event) {
handleAction(event)
}
var btn = document.getElementById('button');
btn.addEventListener('click', newHandle, false);
btn.addEventListener('click', newHandle, false);
我理解的原理就是浏览器认为 newHandle 是一个相同的方法,所以就不会绑定多次,比如用下面方法也不会绑定多次,但是event 值读取不到
function handleAction (event) {
console.log('i am action', event);
}
var btn = document.getElementById('button');
btn.addEventListener('click', handleAction, false);
btn.addEventListener('click', handleAction, false);
<body><button class="btn1">绑定2和3事件</button><button class="btn2">2事件</button><button class="btn3">3事件</button></body>
<script type="text/javascript" src="js/jquery-3.1.0.min.js"></script>
<script type="text/javascript">$('body').on('click','.btn1',function() {
$('body').off().on('click','.btn2',function() {
alert(2);
});
$('body').off().on('click','.btn3',function() {
alert(3);
});
})</script>On方法 使用
$('div').on('click',function(){ console.log('我被点击了'); console.log(this); })
站长微信:xiaomao0055
站长QQ:14496453