1

私が次のような要素を持っている場合:

<div class="one">
    <div class="two">
    </div>
</div>

そして、ユーザーが2つではなく1つをクリックしたときに、何かをしたいのです。

$('.one:not(.two)').live('click', function(){
            console.log('jazz');     
        });

ただし、要素がネストされているため、コンソールログは引き続き実行されます。これを修正するにはどうすればよいですか?

4

2 に答える 2

4

別のクリックイベントを にバインドしてtwo、ブラウザにイベントのバブリングを停止するように指示することをお勧めします。その方がはるかに読みやすいです。

$('.one').click(function() {
   console.log('jazz');
})
.find('.two').click(function(e) {
   e.stopPropagation();
});
于 2012-04-26T14:47:20.480 に答える
2

あなたが探しています

$('.one:not(:has(.two))')

または、でイベントを.one処理してから、で処理して.two呼び出しe.stopPropagation()、最大でバブリングしないようにすることもでき.oneます。

于 2012-04-26T14:45:30.497 に答える