【发布时间】:2012-01-28 14:18:17
【问题描述】:
我有 jPlayer(jquery 音频播放器)的实例:jPlayer1、jPlayer2、jPlayer3、jPlayer4,每个都初始化并预加载了音频文件。
下面的调用函数将遍历现有数组并添加播放预加载音频的方法。
function addPlayAudioMethodToExerciseArray(){
for (i in qaArray){
qaArray[i].playAnswer = function(){ $('#jPlayer'+i).jPlayer('play',0);}
}
}
除了 ('#jPlayer'+i) 部分未评估为 ('#jPlayer1')、('#jPlayer2') 等之外,它创建的方法正常。
提前非常感谢。 注意:我是菜鸟。
【问题讨论】:
-
对于 JavaScript 新手来说,这是一个极其常见的陷阱。
-
你能告诉我们什么包含 qaArray 吗? - 在你 for(i in qaArray) 你的 i 开始为 0,所以第一个 '#jPlayer'+i 将是 '#jPlayer0'......它不存在。我还认为你必须添加一些闭包,否则你我将永远是最后一个(qaArray.length-1)。
-
我为发布简化了它。原代码有 if (i>0){//start traversing}。所以是的,该方法是从 qaArray[1] 开始添加的。当 '#jsPlayer1' 被硬编码时,它可以工作。当然,所有方法都只是触发相同的 jsPlayer1;不符合预期。
标签: javascript jquery increment