我正在将Adobe Animate CC用于画布项目。我有一个分配事件监听器的数组,如下所示:
for(var i = 0; i < navBtnArray.length; i++ ){
navBtnArray[i].addEventListener("click", navigationControls);
}
我试图弄清楚的是如何捕获在数组中单击的按钮的索引值。我试过像这样:
function navigationControls(e){
console.log(navBtnArray.indexOf(this));
}
但这总是返回-1。同样,这是Animate CC,因此我无法使用jQuery。 Animate使用CreateJS和EaselJS库。我曾经在AS3中使用indexOf,但似乎无法以完全相同的方式工作。
最佳答案
为此,您可以使用:
function navigationControls(e){
console.log(navBtnArray.indexOf(e.target));
}
如果仍然不起作用并且
indexOf
无法比较此类对象,则可以尝试向按钮对象添加额外的属性,例如:for(var i = 0; i < navBtnArray.length; i++ ){
navBtnArray[i].addEventListener("click", navigationControls);
navBtnArray[i].index = i;
}
然后执行:
function navigationControls(e){
console.log(e.target.index);
}
关于javascript - 单击按钮时尝试使用indexOf查找数组的索引值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40559780/