Javascript 循环中的jquery事件处理程序
我目前使用javascript创建html表 当用户单击按钮时。它在表中追加一个Javascript 循环中的jquery事件处理程序,javascript,jquery,jquery-select2,Javascript,Jquery,Jquery Select2,我目前使用javascript创建html表 当用户单击按钮时。它在表中追加一个tr 在tr中,我还附加了select2元素 select元素的id带有一个递增的数字 因此,第一行的select元素的id为item-project-no-0,第二行的元素的id为item-project-no-1。诸如此类 但是现在,我需要为动态生成的表中的所有select元素注册事件侦听器。大概是这样的: $('#item-project-no-' + x).on('select2:select', f
tr
在tr
中,我还附加了select2
元素
select
元素的id带有一个递增的数字
因此,第一行的select
元素的id为item-project-no-0
,第二行的元素的id为item-project-no-1
。诸如此类
但是现在,我需要为动态生成的表中的所有select
元素注册事件侦听器。大概是这样的:
$('#item-project-no-' + x).on('select2:select', function (e) {
});
我想尝试使用for循环。但是我不认为for循环知道它必须循环多少次,因为select
元素的数量取决于计时器用户单击按钮的次数。我需要识别触发事件的单个select元素,并相应地处理它
我愿意听取所有的意见和建议。谢谢 试试这个例子:
$(document).on("select2:select","[id^='item-project-no-']",function() {
//do somthing
}
为什么不给每个选择器一个类呢?然后你可以这样做:
$(document).on("select2:select", ".mySelectorClass", function() {
// $(this) is the element
}
这甚至适用于以后动态创建的元素 如果可能,请改用事件委派。为每个元素创建单独的ID是一种代码味道代码>我意识到,当我刚刚创建select元素时,控制台还将记录字符串“inside”。我认为只有当用户使用select元素进行选择时才会触发此事件?你知道为什么吗?