$("#adscollection_tb .contentdel").on("click",function(){ $(this).each(function(){ var obj_address_name = $(this).parent().parent().find(".obj_address_name").html(); var jsondel = { "head": { "module": "object", "function": "del_obj" }, "body":[ { "name": obj_address_name } ] } alert("确定要删除这一条吗?"); addrgroup.ajax(jsondel); }); });
在页面中为一个元素绑定事件,事件执行后页面未刷新且元素还在,然后你再次点击,元素又被绑定个一次点击事件,这样第二次点击就会执行两次,以此类推。如何解决累加绑定?
元素点击后删除,然后再动态创建一个元素,再添加点击事件。显然这个方式很麻烦。
使用jquery的one()方法,为元素绑定一个一次性的事件处理函数,这个事件处理函数只会被执行一次。
$("#adscollection_tb").one("click",function(){ alert("执行"); })
在每次绑定点击事件前先解除之前的事件绑定,再为元素绑定事件,类似于先清空,在做操作一样。但你使用bind()方法绑定时,可以用unbind()方法解除绑定。通常我们跟愿意用on()方法绑定事件,因为bind()方法已经不被推荐,那么那么就用off()方法解除事件绑定。
$("#adscollection_tb").unbind("click").bind("click",function(){ alert("执行"); }); $("#adscollection_tb").off("click").on("click",function(){ alert("执行"); });
如对本文有疑问, 点击进行留言回复!!
深入理解CSS background-blend-mode的作用机制
网友评论