想要在找到它之后传递一个简单的整数。代码如下:
$("#play").click(function() {
var elementNumber;
var properElement;
for (var i = 0; i < playlistLength; i++) {
if (listOfElements[i].type == 'video' && listOfElements[i].position == 0) {
elementNumber = i;
}
};
document.getElementById(listOfElements[elementNumber].name).play();
properElement = listOfElements[elementNumber];
console.log(properElement); // gives out proper element;
setInterval("galleryElement.draw(properElement.name, properElement.type, properElement.position)", 33); // Cannot read property 'name' of undefined
return false;
})
我收到错误Cannot read property "name" of undefined
?我怎样才能在那里传递论据?
提前致谢!
答案 0 :(得分:0)
$("#play").click(function() {
var elementNumber;
var properElement;
for (var i = 0; i < playlistLength; i++) {
if (listOfElements[i].type == 'video' && listOfElements[i].position == 0) {
elementNumber = i;
}
};
document.getElementById(listOfElements[elementNumber].name).play();
properElement = listOfElements[elementNumber];
console.log(properElement); // gives out proper element;
setInterval(function() {
galleryElement.draw(properElement.name, properElement.type, properElement.position)
}, 33);
return false;
})
或(将无法在IE中使用)
$("#play").click(function() {
var elementNumber;
var properElement;
for (var i = 0; i < playlistLength; i++) {
if (listOfElements[i].type == 'video' && listOfElements[i].position == 0) {
elementNumber = i;
}
};
document.getElementById(listOfElements[elementNumber].name).play();
properElement = listOfElements[elementNumber];
console.log(properElement); // gives out proper element;
setInterval(galleryElement.draw, 33, properElement.name, properElement.type, properElement.position);
return false;
})
答案 1 :(得分:0)
试
setInterval(function(){
galleryElement.draw(properElement.name, properElement.type, properElement.position)
}, 33);
您需要将properElement
放在要执行的函数范围内。
答案 2 :(得分:0)
如果您将字符串传递给setInterval()
,您将失去您的properElement的范围。你必须直接传递functioncall(不带引号):
setInterval(function(){
galleryElement.draw(properElement.name, properElement.type, properElement.position)
}, 33);
一般情况下,建议不要将字符串传递给setInterval/Timeout
,因为需要通过eval
进行评估。始终传递函数或对函数的引用。