我想知道,如何记录数组当前单击元素的索引。
数组:
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()
函数中调用所有内容。
提前致谢!
答案 0 :(得分:3)
我不确定我理解你需要什么(这个上下文中的数组是一个javascript对象,而不是DOM元素,所以我无法理解有人可以点击它)。
无论如何,请查看jQuery .index()
方法:http://api.jquery.com/index/
用法:
console.log($(this).index())
希望有所帮助
<强>更新强>
查看完整解决方案的评论
答案 1 :(得分:0)
(将#items
替换为您的选择器...)
$('#items').each(function(index,element){
$(element).click(function(){
console.log(index);
});
})
这比.index()
更高效,如果 jQuery在呼叫上没有缓存。
.index() -> O(n) * invocationCount
与上述方法相反,初始设置仅为O(n)
答案 2 :(得分:0)
我检查了你的代码。您正在创建的每个多维数据集都有一个id。我刚刚将这段代码添加到你的代码中并且有效。
cubesmixed.forEach(function(cube){
cube.click(function(){
console.log("Cube clicked: " + cube.id);
});
});