2011-02-02 32 views
1

我想將我的站點中的javascript從YU2遷移到YUI3,但我只是一個可憐的業餘程序員,而我陷入了第一個陷阱。從YUI2遷移到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); 

我怎樣才能通過MyAppConfig對象通過使用YUI3「domready中」事件偵聽器的MyApp.Core.init功能?

在此先感謝!

回答

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成爲你的初始化的第一個參數。

編輯 看到這裏的YUI3 API文檔:http://developer.yahoo.com/yui/3/api/YUI.html#method_on

+0

感謝您的答覆,克里斯。 – user597009 2011-02-22 16:18:00