我知道我落后于时代,但我刚刚遇到了javascript模块模式。我正在重写一些项目使用,并想知道我的下面代码的效率。这是一个非常基本的脚本,可以更新某些元素的CSS。
/*---- CSS Styling Functions ----*/
$(document).ready(function() { cssStyler.init('breadcrumbs');});
$(".toggle_category").click(function(){ cssStyler.init('label');});
var cssStyler = {
breadcrumbs: {
id: $("#category_id").val(),
id2: $("#art_id").val(),
attr: "color",
tag: "#CD661D",
},
label: {
id: "alert_request",
attr: "display",
tag: "block",
tag2: "none"
},
init: function(config) {
elems = new Array();
elems[0] = $('#'+cssStyler[config].id)[0];
elems[1] = $('#'+cssStyler[config].id2)[0];
for (var i = 0; i < elems.length; i++) {
if(elems[i]){
if (elems[i].style[cssStyler[config].attr] != cssStyler[config].tag) {
elems[i].style[cssStyler[config].attr] = cssStyler[config].tag;
}
else {
elems[i].style[cssStyler[config].attr] = cssStyler[config].tag2;
}
}}
}
};
});
正如您所看到的,它会在页面上获取元素并更改CSS。面包屑在页面准备好后运行,标签在点击时隐藏/取消隐藏。
我之前从未真正触及过模块的问题是效率过高。是否可以使用两个'config'并根据传递给它的变量运行该函数?有没有更好的做事方式?
任何改进建议都将受到赞赏。如果它是完全垃圾,那么这样说,它不会伤害我的感情 - 我保证。