0

このリンクにコードの抜粋を追加しましたhttp://jsfiddle.net/rUbD8/1/

スライダーの名前の jsfiddle の結果部分に、次の 3 つのアコーディオン スライダーを作成しました: HomeAbout、およびContact

ホーム スライダーの[削除]ボタンをクリックすると、console.log に 3 回書き込まれます。次に、[バージョン情報] スライダーの [削除]をクリックすると、console.log に 2 回書き込まれます。

誰かがそれを行う理由と、複数回の発火を防ぐ方法を教えてもらえますか?

4

2 に答える 2

3

これは、スライダーを追加するたびに、クリック機能が「deleteMe」クラスの要素にバインドされているためです。試すことができます

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

迅速な修正として

于 2012-07-26T01:55:25.663 に答える
1

新しい要素を追加するたびにイベントを配線しているため、それを行っています。

解決するには、ライブ イベント ハンドラー (新しいアイテムのモニター) を使用して、クリック イベント ハンドラーを現在の場所から移動します。

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 に答える