Javascript jQuery onChange事件处理程序两次触发函数
这是桌子 当我在item列中输入值时,应该触发该事件Javascript jQuery onChange事件处理程序两次触发函数,javascript,jquery,Javascript,Jquery,这是桌子 当我在item列中输入值时,应该触发该事件 $(document).on('change', '.item', function() { var ite = $(this).closest('tr'); getdetails(ite); })//event function getdetails(dat){ var itemName = $(dat).find('.item').val(); alert (itemName); }; 事件处理
$(document).on('change', '.item', function() {
var ite = $(this).closest('tr');
getdetails(ite);
})//event
function getdetails(dat){
var itemName = $(dat).find('.item').val();
alert (itemName);
};
事件处理程序在第一行正常工作。但从第二排开始,它发射了两次。这是为什么?请尝试添加return false:
$(document).on('change', '.item', function () {
var ite = $(this).closest('tr');
getdetails(ite);
return false;
}) //event
它触发两次的原因是,onchange元素为每个名为item的类触发。如果您仔细查看代码,您可以看到,在为每个表列提供类item的同时,还将item类传递给添加的每一行。因此,事件激发两次,一次用于行,一次用于项列 给出问题的代码是
prot.attr("class", id + " item")
尝试通过不将item类传递到表行来解决问题,而不是对事件侦听器执行各种各样的黑客操作
您可以按照
prot.attr("class", "item-" + id)
$document.on'change','.item',function{e.stopImmediatePropagation;add this从新的trOh中删除item类谢谢!我甚至没有注意到其他item类。