0

YUI()。use内にラップされたYUI関数をjavascriptから呼び出すにはどうすればよいですか?

例以下は、animShow.run()を実行するYUI関数「runShowAnim」です。アニメーション効果の場合...

 var runShowAnim = function(e) {
     animShow.run();
 };

javascript関数で何かを検証するときに、この効果が発生するようにしたいと思います。以下のように呼んでみました。しかし、それは機能していないようです。

function notifyUser(message) {
   document.getElementById("msgArea").innerHTML = message;
   runShowAnim();
}
4

5 に答える 5

2

これは、YUI 関数を完全に関数内に挟み込み、その関数を呼び出すことで実現しました。

var runShowAnim = function() { 
    YUI().use('anim', 'node', function(Y) {
        var animShow = new Y.Anim({
        node: '#msgArea',
        to: { height: 50,opacity:1 }
        });
        animShow.run();
    });
}; 

以下のサンプル関数のように、runShowAnim を問題なく呼び出すことができるようになりました。

function notifyUser(message) { 
   document.getElementById("msgArea").innerHTML = message; 
   runShowAnim(); 
} 
于 2010-11-09T13:09:41.600 に答える
0

YUI.thefunction()?

名前空間でも呼び出す必要があると思います

に似たもの

var X = function(){};
X.Y = function(){};
X.Y.Z = function(){};
X.Y.Z.foo = function(e){alert(e);}

//foo("me");<-error

X.Y.Z.foo("me");
于 2010-10-11T09:44:42.900 に答える
0

関数を呼び出す場合は、関数名に接尾辞を付け、()それらの間に 0 個以上のコンマ区切りの引数を含める必要があります。

runShowAnim();

関数にグローバル スコープがなく ( に渡される関数内で宣言されている場合と同様use())、何らかの方法で外部に渡されない場合は、同じスコープからのみこれを行うことができます。

于 2010-10-11T09:27:50.690 に答える
0

括弧が足りないと思います。

function notifyUser(message) {
   document.getElementById("msgArea").innerHTML = message;
   runShowAnim(); // right here
}
于 2010-10-11T09:27:52.100 に答える
0

クロージャーの内部で定義された関数 (YUI.use の最後のパラメーターとして渡された関数) をクロージャーの外部から呼び出したい場合は、関数をグローバルに公開する必要があります。

クロージャーの外側でグローバル変数を定義してそれに関数を割り当てるか、関数をウィンドウ オブジェクトに割り当てます。

すなわち

var runShowAnim;

YUI().use(function(e){
  runShowAnim = function(){alert('called');}
});

runShowAnim();
于 2013-06-14T14:22:08.027 に答える