0

私のhtmlは次のように設定されています:

<li>
    Header
    <button>Edit</button>
</li>

そして、liをクリックして1つのアクションを実行し、ボタンをクリックして別のアクションを実行する方法があるかどうか疑問に思いました。現在、liにjqueryクリック要素がある場合、ボタンを押すと起動します。HTML構造を変更せずにこれを分離する方法はありますか?

4

3 に答える 3

1

ボタンクリックイベントハンドラー内でevent.stopPropagation()を使用します-これにより、イベントがバブリングするのを防ぎます。li

button.click(function(event){
      event.stopPropagation();
});
于 2012-12-10T22:35:53.653 に答える
0

はい、ボタンのハンドラーでevent.stopPropagationを使用できます。

$(document).ready(function() {
    $('li').click(function() {
        alert('li clicked');
    });

    $('button').click(function(event) {
        event.stopPropagation();
        alert('button clicked');
    });
});​

デモ:jsfiddle

于 2012-12-10T22:37:08.230 に答える
0

もご利用いただけますevent target

$('li').click(function(event) {
      var $tgt=$(event.target);
       if( $tgt.is('button') ){
          alert('button clicked');
       }else{
          alert('li clicked');
       }
});
于 2012-12-10T23:01:58.413 に答える