我想在JavaScript函数中调用一个简单的YUI3函数。 以下是一些以非常详细的方式执行我想要的代码:
function changeContent (message) {
YUI().use("node", function(Y) {
Y.all('#content-div').setContent(message);
});
}
有更好的方法吗?
注意:我不想将此函数附加到任何事件,我只想要一个全局的changeContent()函数。
答案 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