我想创建一个简单的插件,它使用元素的文本作为默认值,或者您可以在调用插件时设置此值。
但是,如果我不设置该值,并为多个元素调用插件,则默认值会成倍增加。
(function($) {
$.fn.reText = function(options) {
var settings = $.extend({
label : $(this).text()
}, options);
return this.each(function() {
$(this).text(settings.label);
});
};
})(jQuery);
call:
$(function() {
$('div').reText();
});
结果:
<div>text 1</div>
<div>text 2</div>
jsFiddle http://jsfiddle.net/Kreestian/L3tp9/
我知道,问题是settings
的范围,但我不知道如何解决这个问题......
将设置变量声明移动到每个函数内部,以便每个元素/div 的设置变量声明都不同。
示例代码如下:
return this.each(function() {
var settings = $.extend({
label : $(this).text()
}, options);
$(this).text(settings.label);
});
更新了小提琴 http://jsfiddle.net/L3tp9/1/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)