2013-08-27 52 views
1

我使用以下格式YUI3 TabView component的JavaScript YUI3全局变量

var tabview; 
YUI().use('tabview', function(Y) { 
    tabview = new Y.TabView({srcNode:'#demo'}); 
    alert (tabview); //defined 
    tabview.render(); 
}); 
alert (tabview); //undefined 

然而,当我尝试访问变量tabview其声明的功能之外,我得到一个异常的对象是不确定的。你能否告诉我我错过了什么?

回答

1

编辑:还要检查JavaScript YUI3 using global variables?

考虑到JavaScript的异步性质,tabview不一定呈现前alert()被称为它的YUI外块。在这种情况下,在警告框中看到“未定义”意味着该变量已被声明,但未被赋予任何值。如果变量不可访问,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); 
}); 

为了使用tabview的锐块之外,确保它已准备好。作为一个简单的例子:

Y.on("domready", function() { 
    console.log(tabview); 
}