我在loop.it中触发click事件多次触发。 我怎么能停止多次射击。
我的代码: -
var myArray = [1,2,3,4,5,6];
var i;
for(i=0;i<myArray.length;i++){
$(".Mydiv").click(function(){
alert(myArray[i]);
});
}
只是示例代码。
实际上,我正在使用jQuery attr更新每秒Mydiv attr id以获取当前用户。 所以当我点击mydiv时,我应该只获得当前的用户ID。但我发火了。
由于
答案 0 :(得分:2)
如果我理解你,这就是解决方案:
var myArray = [1,2,3,4,5,6];
var i = 0;
$(".Mydiv").click(function(){
alert(myArray[i]);
if(i < myArray.length-1) i++;
});
希望这会有所帮助。干杯
答案 1 :(得分:0)
您无法使用.click()
在循环中触发事件,它会将处理程序绑定到为选择器找到的元素或元素的事件。要触发点击,请使用.trigger()
但是为了访问被点击元素的属性,你需要的是:
$(".Mydiv").click(function(){
alert($(this).attr('id'));
});
当你绑定到类中的所有元素时,$(this)意味着你只对被点击的元素起作用。
答案 2 :(得分:0)
在原始代码中,它绑定click事件myArray.length次,你只需要绑定一次。
所以你可以这样做:
var myArray = [1,2,3,4,5,6];
var i = 0;
$(".Mydiv").click(function(){
alert(myArray[i]);
//here change the i
i = (i+1)%length ;
});