我正在将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/

10-12 03:39