我有這個示例模塊,我想在不進行單獨調用的情況下進行初始化,而是通過在使用者頁面中有一個數組來使每個頁面都有一個包含所需模塊名稱的小陣列。從數組中執行頁面模塊
我已經這樣做了,但它不會調用模塊:
var navModule = (function() {
var nav = {};
var navHTMLobjs = {
navList: $('#nav'),
listItems: $('#nav').find('li'),
listLinks: $('#nav').find('a')
};
nav.bindOver = function() {
navHTMLobjs.navList.on('mouseover mouseout', 'li a', function(e) {
if (e.type == 'mouseover') {
$(this).addClass('over');
}
if (e.type == 'mouseout') {
$(this).removeClass('over');
}
});
};
nav.isOverBinded = function() {
return navHTMLobjs.navList.data('events').hasOwnProperty('mouseover') && navHTMLobjs.navList.data('events').hasOwnProperty('mouseout');
};
nav.turnOff = function() {
navHTMLobjs.navList.off('mouseover mouseout');
};
nav.isNavTurnedOff = function() {
return !navHTMLobjs.navList.data.hasOwnProperty('events');
};
nav.init = function() {
this.bindOver();
};
return nav;
});
//var myNav = new navModule($('#nav'));
//myNav.init();
// So I want to only include this array which will be written by
//back end and each page will only have its required bits.
var pageModules = ['navModule'];
for (var m in pageModules) {
var fn = window[pageModules[m]];
//var fn = Function(pageModules[m]); This says navModule is not defined :(
if (typeof fn === 'function') {
var inner = new fn();
inner.init();
}
}
目前FN返回未定義
也讓我知道這是去了解這一點,如果沒有正確的方式也許是一個建議。
感謝
它會更好,如果你能突出什麼是你要尋找的。所以我們可以更好地回答。 – Sujay 2012-07-19 13:06:18