我想将我的网站中的javascript从YU2迁移到YUI3,但我只是一个可怜的业余程序员,我陷入了第一个陷阱。
我有以下代码:
MyApp.Core = function() {
return {
init: function(e, MyAppConfig) {
if (MyAppConfig.tabpanels) {
MyApp.Core.prepareTabpanels(MyAppConfig.tabpanels);
}
},
prepareTabpanels: function(tabpanels) {
// Code here
}
}
}();
var MyAppConfig = {
"tabpanels":{"ids":["navigation"]}
};
YAHOO.util.Event.addListener(window, "load", MyApp.Core.init, MyAppConfig);
如何使用YUI3“domready”事件监听器将MyAppConfig
对象传递给MyApp.Core.init
函数?
提前致谢!
答案 0 :(得分:1)
您应该可以执行以下操作:
var MyApp = {};
MyApp.Core = function(){ return {
init: function(MyAppConfig) {
console.log(MyAppConfig);
},
prepareTabpanels: function(tabpanels) {
// Code here
}
}
}();
var MyAppConfig = {
"tabpanels":{"ids":["navigation"]}
};
YUI().use('node', 'event', function(Y){
Y.on('domready', MyApp.Core.init, this, MyAppConfig);
});
请注意,事件不会作为第一个参数传入,而是配置。
Y.on接受参数<event_type>
,<callback_function>
,<context>
,<params>
..
将第三项传递给回调函数后的任何参数,以便MyAppConfig成为init中的第一个参数。
修改的 请参阅此处的YUI3 API文档:http://developer.yahoo.com/yui/3/api/YUI.html#method_on