В следующем коде, как я могу это сделать, чтобы щелкнуть флажок или поле ввода не переключить выбор строки? Я попытался использовать селектор not(), как в:
$('#example tbody').on('click', 'tr:not(input)', function () ...
используйте e.stopPropagation()
на входах:
$('#example tbody').on('click', ':input', function(e){
e.stopPropagation(); // stops the event to bubble up to the dom tree
}).on('click', 'tr', function () ...
:input
в jQuery выбирает все элементы формы, включая флажки, радио, текстовые поля, выбирает и т. д.
Это называется Event Bubbling.
jQuery stopPropagation bubble down
Использование:
$('input').on('click', function (e) {
e.stopPropagation();
})
'tr:not(input)'
выбирает все элементы<tr>
которые также не являются элементами<input>
. На самом деле, единственный способ «выбрать tr, исключая определенных потомков», это сделать подход stopPropagation @DylanHayes, показанный ниже, я полагаю. Я хотел сделать именно то, что вы описываете, и это сработало для меня.