从YUI2迁移到YUI3并且已经完成

时间:2011-02-02 11:19:40

标签: yui3 domready

我想将我的网站中的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函数?

提前致谢!

1 个答案:

答案 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