点击5次box2后,点击一次box1,结果console了5次a,怎么才能跟外面点击次数无关
("#box1").click(function(){})改为("#box1").unbind("click").click(function(){}),绑定点击事件前先解除绑定的事件
是因为绑定了5个点击函数,只是这5个函数的内容时一样的而已
$("#box2").click(function(){
console.log('b');
s();
});
function s(){
$('#box1').unbind("click");
$("#box1").click(function(){
console.log('a');
});
}
可以unbind在调用的时候先解除
也可以改造一下s函数
function s(){
if(!s.flag){
$('#box1').click(function(){
console.log('a')
})
s.flag = true
}
}
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
执行方法
s()
之前,先取消绑定在#box1
上的点击事件。eg:$('#box1').off('click');