如何为 jQuery 插件设置私有变量?

2024-05-16

我想创建一个简单的插件,它使用元素的文本作为默认值,或者您可以在调用插件时设置此值。

但是,如果我不设置该值,并为多个元素调用插件,则默认值会成倍增加。

(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(使用前将#替换为@)

如何为 jQuery 插件设置私有变量? 的相关文章

随机推荐