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

Jus*_*ner 1 yui yui3

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

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

有一个更好的方法吗?

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

Luk*_*uke 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);
    }

    ...
})();
Run Code Online (Sandbox Code Playgroud)

请注意,如果您使用种子文件(yui-min.js)和动态加载程序来引入其他模块,则存在竞争条件.可以在加载Node API并将其添加到Y之前调用changeContent.您可以通过预先使用组合脚本来避免这种情况.您可以从YUI 3配置器中获取组合脚本URL .预先以阻塞方式加载模块会有性能损失.您可能会或可能不会在您的申请中注意到这一点.