【发布时间】:2012-05-24 04:43:44
【问题描述】:
我想为这样的嵌套选项定义默认值:
$("div").filters({
url : 'url.example.com'
filters : {
'projects' : {
'type' : 'dropdown',
'min' : 1,
'max' : 10,
'htmlOptions': {
'name' : 'projects',
'class': 'filters',
'id' : 'project-filter',
}
},
'another' : {
'type' : 'dropdown'
}
...
}
});
我使用 jQuery $.extend() 将这些与我的插件代码中的默认值合并,如下所示:
settings = $.extend(defaults,options);
我的代码太大了,可以全部放在这里。
我遇到的问题是settings.url 可以工作,但我不知道如何对settings.filters 做同样的事情,因为我不知道开发人员要在这里放置多少过滤器。
谁能提出一个更好的方法来解决这个问题?
我被困住了。谢谢
【问题讨论】:
-
用户可以初始化多少个过滤器?您是否知道所有过滤器名称,或者它们是由用户创建的并且可以命名?
-
我想让开发人员可以随意命名。但是,如果这不起作用。我可以硬编码所有这些,因为我知道它们。它们总共大约有 8 个,但在某些情况下只使用了两个。所以如果你明白我的意思,我最好允许这种类型的灵活性?
标签: jquery plugins nested options extend