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