我相信这个问题与此有关:init 函数如何在插件中工作?谁能回答这个问题,可能就可以回答这个问题。
如果我将我的插件称为:
$('.view_title_images').prodigal({width: 500});
$('.glglg').prodigal({ width: 600 });
然后,在我的init
函数中,我扩展为:
options = $.extend({}, options, opts);
并将其添加到每个元素:$(this).data('prodigal', options)
在选择器中。稍后当我在元素上调用另一个函数时,我会width
为每个元素(500
一个元素和另一个元素)获得正确的值。600
open
click
但是,如果我这样做:
options = $.extend(options, opts);
对于这两个选择器,尽管被单独调用,我得到600
. 我在我的open
函数中通过这样做来测试它:
console.log($(this).data('prodigal'));
我知道不扩展到空对象将覆盖该选择器/全局对象的对象,但为什么data
每个选择器都会发生这种情况?