js点击事件

asdf
  • 103

clipboard.png

点击5次box2后,点击一次box1,结果console了5次a,怎么才能跟外面点击次数无关

回复
阅读 2.3k
6 个回答
✓ 已被采纳

执行方法s()之前,先取消绑定在#box1上的点击事件。eg:$('#box1').off('click');

("#box1").click(function(){})改为("#box1").unbind("click").click(function(){}),绑定点击事件前先解除绑定的事件

因为box1绑定了5次click事件,可以先移除box1的点击事件,再绑定

Ivy_Lady
  • 308

是因为绑定了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
    }
}

如果格式不能变,二楼可以解决你的问题,你可以给出你想要实现的效果,大家应该会给你一些解决思路,从你的代码来看,不知道你应对的是哪种场景

宣传栏