我有一个ul
列表,它将随着数量的增加而动态创建。我有一个for
循环来将点击绑定到所有UL
。
我需要做的是当用户点击它时,删除之前选择的列表并将点击添加为选中。
for循环中的k
值对于增加列表的选择不正确,但它对于click函数是正确的。
我想知道它为什么(k
)不正确?正确绑定所有5个ul
的点击事件,但不在点击事件内。
当我在console.log中为所有ul打印k
值6
。我想知道原因。怎么解决这个?
CODE
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
});
}
});
答案 0 :(得分:1)
您可以使用jQuery事件委派来侦听父级上的事件并将其传递给子级。这是捕获动态添加元素的首选方法。
答案 1 :(得分:0)
您正尝试在for循环中绑定k
的值,但问题是当您单击li
for
循环已完成时。
您可以使用函数绑定k
的每个值。
做类似下面的事情
function addClick(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(document).ready(function(){
for(var k=1;k<=5;k++){
addClick(k)
}
});