0

jqueryセレクターを使用して親のみを選択し、子を除外する方法

HTML

<div id="container">
  <div class="element">
    <img src="something.jpg"/>
    <a href="somelink">Some link</a>
    <p>Blah blah...</p>
  </div>
  <div class="element">
    <img src="something2.jpg"/>
    <a href="somelink2">Some link2</a>
    <p>Blah blah...</p>
  </div>
</div>

JQuery:

< a > と < img > がクリックされたときではなく、ユーザーが (div "element") をクリックした場合にのみアラート ("Hi") をトリガーするにはどうすればよいですか?

                    $("#container").delegate(".element", "click", function(){
                        alert("Hi");
                    });
4

2 に答える 2

1

イベントの伝播を明示的に停止しない限り、イベントは DOM をバブルアップします。これに反対するのではなく、これに取り組むことをお勧めします。とはいえ、あなたが主張する場合は、その子の 1 つではなく、 がクリックさevent.targetれたことを確認してください。div.element

$("#container").delegate(".element", "click", function(event) {
    if (!$(event.target).hasClass("element")) return;
    alert("Hi");
});

http://jsfiddle.net/mattball/JMDLq/

于 2012-05-05T04:13:44.637 に答える