0

我在此链接http://jsfiddle.net/rUbD8/1/添加了代码摘录

我在 jsfiddle 的结果部分中创建了以下 3 个手风琴滑块,名称为您的滑块: HomeAboutContact

当我单击 Home 滑块上的Delete It按钮时,它会写入 console.log 3 次,然后当我单击About 滑块上的Delete It时,它会写入 console.log 2 次

有人能告诉我为什么这样做以及如何防止它多次触发吗?

4

2 回答 2

3

这是因为每次添加滑块时,单击功能都会绑定到具有“deleteMe”类的元素,您可以尝试

jQuery('.deleteMe').unbind('click').click(function(e){}) ...

作为快速修复

于 2012-07-26T01:55:25.663 回答
1

这样做是因为每次添加新元素时都会连接事件。

要解决此问题,请使用实时事件处理程序(新项目的监视器)将 click 事件处理程序移出它所在的位置:

http://jsfiddle.net/rUbD8/3/

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();
    });
});
于 2012-07-26T01:52:12.863 回答