Как выполнить функцию YUI из Javascript? - PullRequest
0 голосов
/ 11 октября 2010

Как я могу вызвать функцию YUI, которая заключена в YUI (). Use from javascript?

пример Ниже приведена функция YUI "runShowAnim", которая выполняет animShow.run ();для эффекта анимации ...

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

Я хочу, чтобы этот эффект происходил, когда я проверял что-то в функции javascript.Я попытался назвать это как ниже.Но, похоже, это не работает.

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

Ответы [ 5 ]

2 голосов
/ 09 ноября 2010

Я достиг этого, полностью разместив функцию 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(); 
} 
0 голосов
/ 14 июня 2013

Если вы хотите вызвать функцию, которая была определена внутри замыкания (функция, переданная в качестве последнего параметра в YUI.use) извне, вам необходимо предоставить функцию глобально.

Любое определениеглобальная переменная вне замыкания и назначьте ей свою функцию, или назначьте свою функцию объекту окна

т.е.

var runShowAnim;

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

runShowAnim();
0 голосов
/ 11 октября 2010

Я думаю, вам не хватает скобок.

function notifyUser(message) {
   document.getElementById("msgArea").innerHTML = message;
   runShowAnim(); // right here
}
0 голосов
/ 11 октября 2010

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");
0 голосов
/ 11 октября 2010

Если вы хотите вызвать функцию, вам нужно добавить суффикс имени функции к () и включить между ними 0 или более аргументов, разделенных запятыми.

runShowAnim();

Если функция не имеет глобальной области видимости (как ваша, если она будет объявлена ​​внутри функции, переданной в use()) и не переданной каким-либо образом снаружи, то вы можете сделать это только из той же области.

...