Я хочу переместить событие через делегата. Я добавляю делегата в строку таблицы. У меня также есть кнопка в одной из ячеек строки. Теперь, когда я нажимаю кнопку, запускается событие нажатия кнопки, но также происходит событие щелчка строки. Я не хочу, чтобы при нажатии кнопки стрелка была нажата. [Ссылка для моего запроса] [1]
$(function(){
$("body").delegate("table tr","click",function(evt){
alert("row clicked");
});
$("body").delegate("table tr input[type=button]","click",function(evt){
alert("button clicked");
});
});
Во - первых, delegate
имеет устареет в пользу on
. Во-вторых, вам нужно прекратить распространение события. Попробуй это:
$("body").on('click', "table tr input[type=button]", function(evt){
evt.stopPropagation();
alert("button clicked");
});
Это происходит из-за пузыря событий. чтобы это не происходило, вы должны использовать evt.stopPropagation()
при нажатии кнопки.
Поэтому ваш второй обработчик событий должен выглядеть так
$("body").delegate("table tr input[type=button]","click",function(evt){
evt.stopPropagation();
alert("button clicked");
});
on(event, selector, handler);
, Я обновил свою скрипку с полным примером.