1

JavaScript関数内から簡単なYUI3関数を呼び出したいのですが。これが私が望むことを非常に冗長な方法で実行するいくつかのコードです:

function changeContent (message) {
    YUI().use("node", function(Y) {
        Y.all('#content-div').setContent(message);
    });
}

これを行うためのより良い方法はありますか?

注:この関数をイベントにアタッチしたくはありません。グローバルなchangeContent()関数を使用できるようにしたいだけです。

4

2 に答える 2

7

APIをYUI()。use(... function(Y){/*サンドボックス*/})の外部に存在させたい場合は、YUI()から返されたインスタンスをキャプチャできます。

(function () { // to prevent extra global, we wrap in a function
    var Y = YUI().use('node');

    function changeContent(message) {
        Y.one('#content-div').setContent(message);
    }

    ...
})();

シードファイル(yui-min.js)とダイナミックローダーを使用して他のモジュールをプルする場合は、ここで競合状態が発生することに注意してください。changeContentは、Node APIがロードされてYに追加される前に呼び出すことができます。これは、事前にコンボスクリプトを使用することで回避できます。コンボスクリプトのURLは YUI3Configuratorから取得できます。事前にブロック方式でモジュールをロードすると、パフォーマンスが低下します。アプリケーションでこれに気付く場合と気付かない場合があります。

于 2010-06-11T03:06:46.410 に答える
1

あなたはこのようにすることができます:

(function(){
    YUI().use("node", function(Y) {
         APP = {
    changeContent: function(message){
        Y.all('.content-div').setContent(message);      
    }
         };
    });
})();

次に、好きな場所から呼び出すことでchangeContentを呼び出すことができますAPP.changeContent(message);。お役に立てれば。:D

于 2010-06-11T04:45:20.090 に答える