我使用以下格式的YUI3 TabView component:
var tabview;
YUI().use('tabview', function(Y) {
tabview = new Y.TabView({srcNode:'#demo'});
alert (tabview); //defined
tabview.render();
});
alert (tabview); //undefined
但是,当我尝试在其声明函数之外访问变量tabview
时,我得到一个异常,即该对象未定义。你能告诉我我错过了什么吗?
答案 0 :(得分:1)
修改:同时选中JavaScript YUI3 using global variables?
考虑到javascript的异步性质,tabview
不一定在YUI块之外调用alert()
之前呈现。在这种情况下,在警告框中看到“未定义”意味着该变量已被声明但未分配给任何值。如果无法访问该变量,alert()
将因未被捕获的“ReferenceError”而失败。
因此,在尝试猜测您的意图时,如果要检查tabview对象,可能需要使用console.log()
而不是alert()
来查看浏览器控制台中的输出,并将其放入在render()
之后的YUI块内:
var tabview;
YUI().use('tabview', function(Y) {
tabview = new Y.TabView({srcNode:'#demo'});
console.log(tabview); //defined
tabview.render();
console.log(tabview);
});
为了在YUI块之外使用tabview
,请确保它已准备就绪。作为一个简单的例子:
Y.on("domready", function() {
console.log(tabview);
}