6

div をクリックしたときにイベントを発生させたいのですが、その div の特定のリンクをクリックしたときにそのイベントを発生させたくありません。

私のJS

$("#myDiv").not("#myLink").click(function () {
    alert("clicked");
});

//Or

$("#myDiv:not(#myLink)".click(function () {
    alert("clicked");
});

$("body").on('click', '#myLink', function(e) {
    e.stopPropagation();
});

私のHTML

<div id="myDiv">
    <a href="#" id="myLink">Some link</a>
</div>

ここにjsfiddleがあります

編集:実際に私の実際のコードは「On」メソッドを使用しています。すでに stopPropagation を試しましたが、その場合は機能しません

4

3 に答える 3

4

div に配置するすべてのリンクに対して実行を停止するコードを繰り返す必要がないようにするには、stopPropagationを使用できます。

$('#myDiv a').click(function(e) {
    e.stopPropagation(); //stops default link action
    //do your stuff
});

これにより、すべてのリンク ( ) がdiv<a>内にある場合、通常どおりに実行されなくなります。#myDiv

于 2013-04-14T16:25:25.137 に答える
0

これもうまくいくかもしれません

$("#myDiv").click(function (ev) {
     alert("clicked");


}).children().click(function(e) {
  return false;
});

http://jsfiddle.net/SjDdN/7/

于 2013-04-14T16:26:32.780 に答える