如何在普通的JavaScript函数中调用基本的YUI3函数?

时间:2010-06-11 02:16:42

标签: yui yui3

我想在JavaScript函数中调用一个简单的YUI3函数。 以下是一些以非常详细的方式执行我想要的代码:

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

有更好的方法吗?

注意:我不想将此函数附加到任何事件,我只想要一个全局的changeContent()函数。

2 个答案:

答案 0 :(得分:7)

如果您希望API存在于YUI()。use(... function(Y){/ * sandbox * /})之外,您可以从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)和动态加载程序来引入其他模块,请注意此处存在竞争条件。可以在加载Node API并将其添加到Y之前调用changeContent。您可以通过预先使用组合脚本来避免这种情况。您可以从the YUI 3 Configurator获取组合脚本网址。预先以阻塞方式加载模块会有性能损失。您可能会或可能不会在申请中注意到这一点。

答案 1 :(得分:1)

你可以这样做:

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

然后,您可以通过从任何地方调用APP.changeContent(message);来调用changeContent。希望这可以帮助。 :d