2013-08-27 130 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); 
}