Javascript JQuery:在表行中查找select元素并侦听更改事件
我有一个包含多个select元素的行表。我已经给这个select元素赋予了类。我需要根据类查找此select元素的on change事件 所以我用这个来找到元素Javascript JQuery:在表行中查找select元素并侦听更改事件,javascript,jquery,dom,Javascript,Jquery,Dom,我有一个包含多个select元素的行表。我已经给这个select元素赋予了类。我需要根据类查找此select元素的on change事件 所以我用这个来找到元素 jQuery("table").on('click', 'tr', function () { jQuery(this).children().find('.select1').on('change', function () { //my action });
jQuery("table").on('click', 'tr', function () {
jQuery(this).children().find('.select1').on('change', function () {
//my action
});
//and same way the next select element
});
现在,我得到了on change事件,但是on change事件被多次触发。
最初一次,然后计数继续增加。我需要帮助,因为我已经被困很长时间了。谢谢
答复:
我想听听select的change事件,然后在该行中添加更多元素。现在我使用delegate()来监听selectchange事件,然后获取父级
使用jQuery(this.nexist('tr');附加其他表数据
jQuery('table').on('click','select1',function(){
//get the parent
jQuery(this).closest('tr');
//Do the rest
});
谢谢不需要
tr
click事件,如果选择的元素是静态的,那么直接注册click处理程序
jQuery('table .select1').on('change', function () {
//my action
});
如果它们是动态创建的,则使用
在您的代码中,每次单击tr时,新的更改处理程序将添加到该
tr
中的select1
元素中,这不是您想要的,是吗?事实上,事情是在第一个元素的select上,我正在填充下一个select元素,并在表中追加一行。所以select不是静态的。@user3273621然后使用事件委派模型I GAVES,这样它就像一个表有多个select和类select1一样。我需要找到哪一个被更改了。是的,我尝试了委派,但该事件再次被称为多重委派times@user3273621此代码只能执行一次。。可能在dom上准备好了
jQuery('table').on('change', '.select1', function () {
//my action
});