2012-04-01 14 views
0

を停止させながら「再バインド」私は状況があります:私はクリックした後、コンテナ jQueryの伝播

  • にクリックリスナーを追加

    1. を唯一の子供がクリック
    2. を認識できるように、私はリスナーを削除子供がクリックされた後
    3. コンテナの機能は、私のオリジナルのアイデア
     _______________________ 
        | #container [#child] | 
        |_______________________| 
    
    

    が復元されます:

    var toggleContainer = function() { 
        var width = ($('#container').width() > 299) ? 145 : 300; 
        $('#container').animate({ width: width }).off('click'); 
    } 
    
    $('#container').click(toggleContainer); 
    
    $('#child').click(toggleContainer, function() { 
        $('#container').on('click', toggleContainer); 
    }); 
    

    この機能は、コンテナのクリックリスナー(toggleContainer)がリバウンドしないことを除いて機能します。子がクリックされたときにイベントの伝播が問題になると思っていましたが、子にevent.stopPropagation()を追加するとすべてが破損していました。

    だから私は困惑しています。私は本当にあなたが提供できるアドバイスに感謝します。ありがとう。

  • 答えて

    1

    clickメソッドに2番目の関数引数を渡しても、それが実行しているとは思われません。 docsをご覧ください。

    http://jsfiddle.net/F9aJ4/1/あなたは何をしようとしていますか?