在我正在编写的插件中,开发人员可以指定选项,这些选项我可以像这样存储和引用:
(function( $, window) {
$.widget("mobile.plug", $.mobile.widget, {
options: {
menuWidth: '25%',
middleWidth: '25%',
mainWidth: '25%'
},
some: function(){
var self = this,
o = self.options;
console.log( o.menuWidth );
}
})
}) (jQuery,this);
我的问题:
假设我想遍历所有三个元素(主要,菜单,中间)并获取各自的选项值,如果可能的话,我将如何动态构造o。[elem] Width?
这不起作用(错误:。运算符后缺少名称):
// this selects panels with jqmData(panel="mid|menu|main")
var elems = $('selector');
for (var i = 0; i<elems.length; i++){
var el = elems.eq(i);
console.log( o.[el.jqmData("panel")]Width );
}
最佳答案
您应该可以将“宽度”连接到“面板”结果:
o[el.jqmData("panel") + "Width"]
例如,如果
el.jqmData("panel")
是“菜单”,您将得到o["menuWidth"]
。