javascript 点击事件执行两次js问题

20 篇文章 0 订阅

因为利用js在页面加载后添加需要点击事件的代码,发现在点击后会代码会执行两次,因为有toggle效果,导致弹窗出现又很快丢失

查了一些资料,发现这是冒泡的原因,需要在点击事件代码中加入阻止冒泡的方法:

e.stopPropagation();

但是发现还是不行

后面查到,off函数可以解除由on函数所绑定的事件,所以在js代码中on函数前调用下Off函数,就正常了:

$("li.taskli").off('click','a').on('click','a',function(e){ //在on绑定前调用off去除绑定
    //$(document).on('click','li.taskli a',function(e) {  //原先的写法
        console.log("here")
        if ($(this).parent().find('div.popover').size()>0)
        {
            $(this).popover('destroy')
        }else{        
            var uuid = $(this).attr('targetuuid');
            var taskhtml = '<div id="taskview">' + popheadDivHtml()+'</div>';
            $(this).popover({
                placement:'bottom',
                title:uuid,
                html:'true',
                content:taskhtml
            }).popover('toggle');
            
            getResultFromFile(uuid)
        }
        e.stopPropagation();    //阻止冒泡
    })	


  • 13
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值