4

次のコードでクリックを処理します。

入力のあるテーブル

<table>
    <tr>
        <td>
            <input type="checkbox" />
        </td>
    </tr>
</table>​

クリックハンドラ

$('table tr').click(function(){
    alert('clicked');
});​

http://jsfiddle.net/n96eW/

うまく機能していますが、td にチェックボックスがある場合は、クリックしたときにも処理されます。

TRのクリックを処理する方法はありますが、子要素ではトリガーされませんか?

4

3 に答える 3

15

http://jsfiddle.net/n96eW/1/

チェックボックスに別のイベント ハンドラーを追加して、stopPropagation を実行します。

$('table tr').click(function(){
    alert('clicked');
});

$('table tr input').click(function(e) {
    e.stopPropagation();
});
​
于 2012-04-10T10:04:17.883 に答える
4

event.targetイベントをフィルタリングするために確認できます。

$('table tr').click(function(e){
    if(e.target.tagName.toLowerCase() != "input") {
        alert('clicked');
    }
});​
于 2012-04-10T10:05:39.230 に答える
2

使用することもできます

$("tr").on('click',function() {

  if (!$(event.target).is('input'))
    alert('clicked');

});
于 2015-12-02T20:33:52.013 に答える