0

我想知道,如何记录数组当前单击元素的索引。

数组:

var cubesmixed = []; 
var cubes;
for(var i = 0; i < 149; i++) {
    cubes = paper.rect(Math.floor(Math.random()*2000), Math.floor(Math.random()*2000), 0, 0);
    cubesmixed.push(cubes);
}

click功能:

$(this).click(function() 
{ 
   console.log(index of current clicked element in cubesmixed); 
});

我在一个ready()函数中调用 all 。

提前致谢!

4

3 回答 3

3

我不确定我是否理解您需要什么(在此上下文中的数组是一个 javascript 对象,而不是 DOM 元素,所以我不明白有人如何点击它)。

无论如何,请查看 jQuery.index()方法:http ://api.jquery.com/index/

用法:

console.log($(this).index())

希望能帮助到你

更新:

查看完整解决方案的评论

于 2013-10-17T09:21:51.720 回答
0

(替换#items为您的选择器...)

$('#items').each(function(index,element){

   $(element).click(function(){
      console.log(index);
   });

})

.index() 将比jQuery 对调用不进行缓存更有效。

.index() -> O(n) * invocationCount

与上述仅O(n)用于初始设置的方法相反

于 2013-10-17T09:22:42.817 回答
0

我检查了你的代码。您正在创建的每个多维数据集都已经有一个 ID。我刚刚将这段代码添加到您的代码中并且它有效。

cubesmixed.forEach(function(cube){
    cube.click(function(){
        console.log("Cube clicked: " + cube.id); 
    });
});

这是小提琴:http: //jsfiddle.net/Fraximus/jYGR9/

于 2013-10-17T10:14:34.960 回答