0

子要素をクリックしたときに親のクリックアクションを防止しようとしています

私のJavaScriptコード:

$(".profile").bind("mouseenter mouseleave click",function(e){
e.stopPropagation();
e.preventDefault();
//if blocks depending of one of three actions
} 

そして、その .profile 要素の中には、リストを含む DIV があります

<div id="tooltip-content" class="tooltip center" style="display: block;">
        <ul>
            <li id="name">Toms IrForšs </li>
            <li id="main"><a onclick="something()">1</a></li>
            <li id="remove"><a onclick="something()">2</a></li>
            <li id="sendmail"><a onclick="something()">3</a></li>
        </ul>
</div>

ただし、something メソッドが呼び出されると、親のクリック イベントも発生します。

4

2 に答える 2

2

これを試して

 $(".profile").bind("mouseenter mouseleave click",function(e){ 
   if (e.target == this)
   {
      //do your stuff
   }
 });

これにより、クリックされた要素がバインドされた要素と同じ場合にのみ、if 条件内のコードが実行されます。

on()の代わりに使用しますbind()

于 2013-05-08T07:24:07.480 に答える
0

私はあなたのためにフィドルを作成しました。コードを少し変更するだけで、あなたのために機能するはずのコンセプトです(リンク)。

あなたが見逃しているのは、stopImmediatePropagationメソッドを使用して伝播をキャンセルすることです。

それでおしまい!

于 2013-05-08T07:28:35.693 に答える