繁体   English   中英

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

[英]jQuery onChange event handler firing function twice

这是表http://jsfiddle.net/djochw6L/1/应该在项目列中输入值时触发该事件

$(document).on('change', '.item', function() {
    var ite = $(this).closest('tr');
    getdetails(ite);
})//event

function getdetails(dat){
    var itemName = $(dat).find('.item').val();
    alert (itemName);    
};

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

触发两次的原因是,您的on change元素会为每个带有名称项的类触发。 如果仔细阅读代码,您会发现在为每个表列分配类项目的同时,还可以将项目类传递给添加的每一行。 因此,事件触发两次,一次触发该行,一次触发item列。

给你的问题的代码是

prot.attr("class", id + " item")

尝试通过不将item类传递给表行来解决问题,而不是对事件侦听器进行各种处理。

您可以按照以下方式构建代码

prot.attr("class", "item-" + id)

尝试添加return false:

$(document).on('change', '.item', function () {
    var ite = $(this).closest('tr');
    getdetails(ite);
    return false;
}) //event

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM