Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery onChange事件处理程序两次触发函数_Javascript_Jquery - Fatal编程技术网

Javascript jQuery onChange事件处理程序两次触发函数

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); }; 事件处理

这是桌子 当我在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);    
};

事件处理程序在第一行正常工作。但从第二排开始,它发射了两次。这是为什么?

请尝试添加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类。