抱歉,如果这是一个基本问题,但我似乎对 JQuery 中的插件如何工作存在误解,而 Google 并没有多大帮助。
想象一下我有:
methods = {
init : function(opts){
options = $.extend(options, opts);
return this.each(function(){
data = $(this).data('prodigal');
if(!data){
if(options.isActive === false){
$(options.tpl.overlay).css({ 'opacity': options.overlay.opacity }).appendTo('body');
options.isActive = true;
}
}
});
}
};
Nowoptions.isActive
是一个布尔值true
orfalse
来表示是否options.tpl.overlay
应该将选项添加到body
文档中。它确保我options.tpl.overlay
只向文档附加一次并且它可以工作,但我不确定它是如何工作的。
当我打电话时:
$('.view_title_images').prodigal();
$('.glglg').prodigal();
它仍然只添加一次。我总是被引导相信插件已经形成,并且每次“调用”都会调用 init 函数,即$('.view_title_images,.glglg').prodigal();
会形成并调用该init
函数一次。
那么该init
函数究竟是如何在 JQuery 插件中运行的呢?