1
$('.selector').click(function() {
    $(this).children('.drop_down_label').animate({ height: 'toggle' });
 });

チェックボックスを含む div '.drop_down_label' があります。div をアニメーション化すると問題なく動作します

しかし、いくつかのチェックボックスをチェックすると、アニメーションが戻ってきます。

どうすればこれを回避できますか?

私の目標はクリックです->「.drop_down_label」をアニメーション化します->いくつかのチェックボックスをオンにします->次に、ページ内の任意の要素をクリックしたとき

「.drop_down_label」のアニメーションを元に戻します。

4

1 に答える 1

2

HTML イベントが機能する方法は、バブルアップすることです。div 内のチェックボックスをクリックすると、div のクリック イベントもトリガーされます。

次のことを行うクリック ハンドラーをチェックボックスにアタッチします。

$("input[type=checkbox]", ".selector").click(function(e){
    e.stopPropagation();
});

ページ上の任意の要素をクリックする後半 (ただし、 divの外側の任意の要素を意味すると思います) では、これは機能するはずです (未テスト)。.selector

$('.selector').click(function() {
    $(this).children('.drop_down_label').animate({ height: 'toggle' });
    $(document).one('click', function(e) {
        $(this).children('.drop_down_label').animate({ height: 'toggle' });
    })
})
于 2013-01-26T19:46:00.700 に答える