1

次の形式でYUI3 TabView コンポーネントを使用しています。

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

ただし、宣言関数の外部で変数にアクセスしようとするtabviewと、オブジェクトが未定義であるという例外が発生します。私が見逃しているものを教えてください。

4

1 に答える 1

1

編集:グローバル変数を使用して JavaScript YUI3 もチェックしますか?

JavaScript の非同期性を考慮すると、YUI ブロックの外側で呼び出さtabviewれる前にレンダリングされるとは限りません。alert()この場合、警告ボックスに「未定義」と表示されている場合は、変数が宣言されているが、値が割り当てられていないことを意味します。変数にアクセスできない場合alert()、キャッチされない "ReferenceError" が原因で失敗します。

したがって、あなたの意図を推測しようとして、tabview オブジェクトを調べたい場合は、ブラウザーのコンソールで出力を表示するconsole.log()代わりに使用alert()し、YUI ブロックの直後に配置することをお勧めしrender()ます。

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

    console.log(tabview);
});

tabviewYUI ブロックの外で使用するには、準備ができていることを確認してください。簡単な例として:

Y.on("domready", function() {
    console.log(tabview);
}
于 2013-08-27T10:05:24.910 に答える