我有一段如下所示的代码,用于选择图像对象列表中的第一个对象。当它运行时,大约有一半的时间我收到错误:
TypeError: Cannot read property of mylist
我意识到这种情况正在发生,因为它试图引用一个尚未被赋予对象引用的对象。基本上,页面将加载,我想在JavaScript中调用此函数,但是如果此代码在引用列表之前运行,则会出错。这是我的代码片段:
window.onload = function () {
try {
var tnl = $find('mylist');
tnl.selectFirstItem();
}
catch (exception) {
alert(exception);
}
}
tnl.selectFirstItem()
line是将错误抛给catch块的那一行。
所以,我的问题是,有没有办法迫使它等到这个对象" tnl"已被引用?
谢谢!
答案 0 :(得分:2)
var tnl = $find('mylist');
应该是
var tnl = $('#mylist');
假设mylist是一个ID。
你正在使用发现错误。
首先获取元素,然后使用它来查找子元素。 所以你可以这样做:
var container = $('.containerElement');
container.find('#mylist');
答案 1 :(得分:1)
这是你要求的“循环”。但这仍然是错误的。如果在tnl
返回后未分配$find('mylist');
,则不会在以后分配$find
。您可能会在window.onload = function () {
try {
var tnl = $find('mylist');
var timer = setInterval(function() {
if (tnl) {
clearInterval(timer);
tnl.selectFirstItem();
}
}, 1000);
} catch (exception) {
alert(exception);
}
}
来电时抛出错误。
{{1}}