如何从Javascript执行YUI函数?

时间:2010-10-11 09:23:20

标签: javascript yui3

如何调用包含在YUI()中的YUI函数。从javascript使用?

示例 下面是一个YUI函数“runShowAnim”,它执行animShow.run();用于动画效果...

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

我希望在javascript函数中验证某些内容时会发生此效果。我试着把它称之为下面。但它似乎没有用。

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

5 个答案:

答案 0 :(得分: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(); 
} 

答案 1 :(得分:0)

如果要调用函数,则必须使用()为函数名后缀,并在它们之间包含0个或多个逗号分隔的参数。

runShowAnim();

如果函数没有全局范围(如果它在传递给use()的函数内声明,那么你的函数将会有所不同),那么你只能在同一范围内执行此操作。

答案 2 :(得分:0)

我认为你错过了括号。

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

答案 3 :(得分: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");

答案 4 :(得分:0)

如果要从外部调用已在闭包内定义的函数(作为YUI.use的最后一个参数传递的函数),则需要全局公开该函数。

在闭包之外定义一个全局变量并将函数赋值给它,或者将你的函数赋值给window对象

即。

var runShowAnim;

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

runShowAnim();