我在此链接http://jsfiddle.net/rUbD8/1/添加了代码摘录
我在 jsfiddle 的结果部分中创建了以下 3 个手风琴滑块,名称为您的滑块: Home、 About和Contact
当我单击 Home 滑块上的Delete It按钮时,它会写入 console.log 3 次,然后当我单击About 滑块上的Delete It时,它会写入 console.log 2 次
有人能告诉我为什么这样做以及如何防止它多次触发吗?
我在此链接http://jsfiddle.net/rUbD8/1/添加了代码摘录
我在 jsfiddle 的结果部分中创建了以下 3 个手风琴滑块,名称为您的滑块: Home、 About和Contact
当我单击 Home 滑块上的Delete It按钮时,它会写入 console.log 3 次,然后当我单击About 滑块上的Delete It时,它会写入 console.log 2 次
有人能告诉我为什么这样做以及如何防止它多次触发吗?
这是因为每次添加滑块时,单击功能都会绑定到具有“deleteMe”类的元素,您可以尝试
jQuery('.deleteMe').unbind('click').click(function(e){}) ...
作为快速修复
这样做是因为每次添加新元素时都会连接事件。
要解决此问题,请使用实时事件处理程序(新项目的监视器)将 click 事件处理程序移出它所在的位置:
jQuery('.slider_holder').on('click', '.deleteMe', function(e) {
header = jQuery(e.target).parent().prev();
container = jQuery(e.target).parent();
console.log(e.target);
header.fadeOut('slow',function(){
jQuery(this).remove();
});
container.slideUp('normal',function(){
jQuery(this).remove();
});
});