我的代码如下:
<div id="content">
<div id="widget1"></div>
<div id="widget89"></div>
<div id="widget78"></div>
..............
<div id="widget(anyIndex)"></div>
</div>
通过向widget(HTML / JS小部件)中添加内容,我有:
<div id="content"
<div id="widget1">
<script type='text/javascript'>
jQuery("#widget1").selectme({
Numpost:4,
Stylepost:"papa",
});
</script>
</div>
<div id="widget89">
<script type='text/javascript'>
jQuery("#widget89").selectme({
Numpost:7,
Stylepost:"popo",
});
</script>
</div>
..............
<div id="widget(anyIndex)">.....</div>
</div>
这是手动和耗时的。
现在,我想使用短代码,而不是在每个div中重复过多的Javascript,如:
<div id="content"
<div id="widget1">[4][papa]</div>
<div id="widget89">[7][popo]</div>
..............
<div id="widget(anyIndex)">...</div>
</div>
JS:
<script>
(function (a) {
a.selectme = function (c, b) {
var d = this;
d.init = function () {
d.options = a.extend({}, a.selectme.defaultOptions, b);
...................something
};
d.init()
};
a.selectme.defaultOptions = {
Numpost:4,
Stylepost:"Enter your style",
};
a.fn.selectme = function (b) {
return this.each(function () {
(new a.selectme(this, b))
})
}
})(jQuery);
</script>
注意:Widget(anyindex)会自动捕获。例如:widget89设置为当前但我不知道该窗口小部件的索引(索引= 89),只是确定我正在输入Javascript / Jquery代码。当我添加新的小部件时,我将有新的索引,例如:widget105或者widget200(anyindex)
我该怎么做?谢谢你的帮助。
答案 0 :(得分:2)
这是使用标记中的数据属性和简单的each
循环进行初始化的方法。为您需要在插件中指定的变量添加data-
属性。
<div id="widget89" data-numpost="7" data-style="popo">
alert( $('#widget89').data('numpost') );
要获取窗口小部件的索引,首先要创建它们的集合以用于索引:
使用$.each
初始化整个集合将为您提供集合中窗口小部件的索引(我不清楚您需要它):
$('[id^=widget]').each(function(idx){
var $this=$(this), data=$this.data, INDEX=idx;
$this.selectme({
Numpost:data.numpost,
Stylepost:data.style
})
})
答案 1 :(得分:1)
你可以使用一个功能
function setwidget(id,post,style)
{
jQuery("#"+id).selectme({
Numpost:post,
Stylepost:style
});
}
现在称为
setwidget("widget1",4,"papa");
setwidget("widget89",7,"popo");