2011-05-07 33 views
1

divのjquery clickイベントを使用し、div要素に入力要素があります。 input要素がdivにあるので、inputをクリックすると、click関数は機能しますが、この動作は望ましくありません。 Jqueryのウェブサイトのセレクタページを見ましたが、セレクタが見つかりませんでした。これどうやってするの?jqueryセレクタは、領域内にある要素のない領域を選択する必要があります

答えて

1

イベントがどこ見てoriginating elementnodeNameプロパティを使用します。

$('#myDiv').click(function(event) { 
    if (event.target.nodeName.toLowerCase() === 'input') { 
     return; // ignore the event if it originated on an input element 
    } 

    // do the rest of your code 
}); 

あなたは、より複雑なクエリ(例えばjQueryのpseudoselectorsを使用)したい場合は、あなたがisを使用することができます。

$('#myDiv').click(function(event) { 
    if ($(event.target).is('input[name="foo"]')) { 
     return; // ignore the event if it originated on an input element with the name foo 
    } 

    // do the rest of your code 
}); 
+0

ありがとう@ lonesomeday、それは動作します。 :) –

関連する問題