0

特定のクラスで何かをクリックした場合を除いて、.click()イベントを動作させようとしています。html の例:div.content.noclick

<div class="content">
    <a href="#" class="noclick">
</div>

<a>タグが技術的に選択されていないため、これを実行しても機能しません。

$('.content').not('.noclick').click(function(){/*blah*/});

.contentclass 以外のどこかをクリックすると、クリック機能を動作させるにはどうすればよい.noclickですか?

4

4 に答える 4

3

コールバック内からそれらを除外する必要があります:

$('.content').click(function(e) {
    if ($(e.target).hasClass('noclick')) return;
});

または、イベントがこれらの要素から離れないようにします。

$('.noclick').click(function(e) {
    e.stopPropagation();
});

私は2番目のものと一緒に行きます。ドロップするだけで、現在のコード (を除く.not()) が機能します。

于 2013-04-27T06:02:23.070 に答える
3
$('.content').click(function(event) {
   // ...
}).find('.noclick').click(function(event) {
   event.stopPropagation();
});
于 2013-04-27T06:02:56.947 に答える
0
$('.content').click(function(e){
    if(!$(e.target).is('.noclick')){
        // Handle click event
    }
});
于 2013-04-27T06:03:02.663 に答える