【发布时间】:2011-04-24 05:00:33
【问题描述】:
我开发了一个小的 javscript 小部件来将一些嵌套的 <ul> 块转换为 Windows 资源管理器风格的浏览器。我最近了解了对象文字模式并决定试一试,所以我的代码组织是这样的:
var myExplorer = {
init : function(settings) {
myExplorer.config = {
$wrapper : $('#explorerCategories'),
$contentHolder : $j('#categoryContent'),
loadingImg : '<img src="../images/standard/misc/ajax_loader.gif" alt="loading" class="loading" />'
}
// provide for custom configuration via init()
if (settings && typeof(settings) == 'object') {
$.extend(myExplorer.config, settings);
}
// some more code...
},
createExpanderLink : function() {
// more code
},
anotherMethod : function() {
// etc
}
}
然后在我的页面中我设置了我的资源管理器:
$j(function () {
myExplorer.init();
}
顺便说一句,这一切都很好。问题是当我想在同一页面上拥有多个这些资源管理器样式小部件时。我尝试传入不同的设置:
$j(function () {
// first instance
myExplorer.init();
//second instance
var settings = {
$wrapper : $('#explorerCategories2'),
$contentHolder : $j('#categoryContent2')
}
myExplorer.init(settings);
}
但这只是覆盖了第一个实例的配置值,从而有效地破坏了它。我开始意识到对象文字模式不是去这里的方式,但我不确定是什么。有没有人可以指点一下?
【问题讨论】:
标签: javascript jquery object