0

たとえば、html があるとします。

<div class="row">
    <input type="checkbox">
</div>
  1. ユーザーが行全体をクリックすると、強調表示されます (イベントselectedによってクラスが追加されonClickます)。onClickclass で要素に event を付け.rowます。

  2. ユーザーがチェックボックス ( の内側) をクリックすると.row、このチェックボックスが選択されます。ただし、行は強調表示されるべきではありません。

チェックボックスの領域をイベントの領域から除外することはできます.rowonClick?


アップデート

これが私が今持っているものです: http://jsfiddle.net/saAGU/

チェックボックスを正確にクリックしたときにクラスを切り替えたくありません。


更新 2

将来使用するためのjQueryを使用した実用的なソリューションは次のとおりです。http://jsfiddle.net/saAGU/2/

4

3 に答える 3

3

はい、可能です。これを行う正しい方法は、チェックボックスに onclick イベントを配置し、イベントをキャプチャしてその伝播を停止することです。

このようなもの:

function checkboxClick (e) {
    e.stopPropagation();
}

うまくいったか教えてください

于 2013-06-21T18:12:17.297 に答える
2

すべてのチェックボックスにクリックイベントを追加し、その伝播を停止します。これは機能するはずです-

e.stopPropagationチェックボックスクリックのイベントハンドラーで

http://jsfiddle.net/saAGU/3/

于 2013-06-21T18:11:03.590 に答える
0

イベントをキャプチャして event.toElement を見ると、.row をクリックしたのか、他の何かをクリックしたのかがわかります。

http://jsfiddle.net/saAGU/1/

$('.row').click(function(event){
    if (event.toElement !== this) // Did the user click on the row directly?
        return;

    $(this).toggleClass('selected');
});
于 2013-06-21T18:20:55.717 に答える