我有一个ul
列表将随着数量的增加而动态创建。我有一个for
循环将点击绑定(bind)到所有这些 UL
。
我需要做的是,当用户单击它时,删除以前选择的列表并将单击的列表添加为选定的。
不知何故k
for循环中的值对于递增列表的选择是不正确的,但对于点击功能是正确的。
我想知道为什么它( k
)不正确?因为它已正确绑定(bind)所有 5 ul
的点击事件但不在点击事件内。
当我console.log k
时它打印的值 6
对于所有 ul。我想知道原因。怎么解决这个问题呢?
代码
jQuery(document).ready(function(){
for(var k=1;k<=5;k++){
jQuery("#sample"+k+" li").click(function(){
console.log(k);
jQuery("#sample"+k+" li.selected").removeAttr('class');//removing previous selection
jQuery(this).addClass('selected');//adding selection for clicked one
});
}
});
最佳答案
您可以使用 jQuery 事件委托(delegate)来监听父级上的事件并将其传递给子级。这是捕获动态添加元素的首选方法。
关于javascript - 如何将点击事件添加到动态id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25512170/