1

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

提前致谢!

4

1 回答 1

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

于 2011-02-15T22:47:13.773 回答