jquery中click事件重复绑定问题

Posted 月下小狸123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jquery中click事件重复绑定问题相关的知识,希望对你有一定的参考价值。

在最近的项目中遇到这样一个问题:

技术分享

 

 

技术分享

从心愿单中删除产品,1.如果直接确定删除,则删除成功,2.如果先取消删除,再次点击再确认删除,则会出现问题,测试发现:

对未来元素(类名为deleteFav的对象)绑定click事件中,如果function中还包含有元素(简称A)的click事件,在点击两次删除按钮时会出现A 元素的click事件重复绑定的情况

$("body").on("click",".deleteFav",function(){//点击删除button
  var id=$(this).attr("id");
  $(".alertBtns").append("<span class=‘cancel‘ style=‘margin-left:14px;‘>CANCEL</span>");
  $(".alertwindow .tips").html("Are you sure you want to remove this Photo from the favorites? ");
  $(".alertwindow").show();
  $(".alertBtns .conf").click(function(event){

    //alert("test");   //------第二次点击.deleteFav 会发现弹出两次test
    location.href=rootDomain +‘/wishlists/delete/‘+id;
  });

});

 

解决方法,先解绑,再绑定

$("body").on("click",".deleteFav",function(){//点击删除button
  var id=$(this).attr("id");
  $(".alertBtns").append("<span class=‘cancel‘ style=‘margin-left:14px;‘>CANCEL</span>");
  $(".alertwindow .tips").html("Are you sure you want to remove this Photo from the favorites? ");
  $(".alertwindow").show();
  $(".alertBtns .conf").unbind("click").click(function(event){
    location.href=rootDomain +‘/wishlists/delete/‘+id;
  });

});

 

以上是关于jquery中click事件重复绑定问题的主要内容,如果未能解决你的问题,请参考以下文章

Jquery中click事件重复执行的问题

jquery事件重复绑定

jquery事件重复绑定的快速解决方法

jquery绑定事件的坑,重复绑定问题

jquery on()方法重复绑定解决方法

JQuery中的click重复执行现象