Javascript 重用jquery插件而不产生冲突

Javascript 重用jquery插件而不产生冲突,javascript,jquery,plugins,makefile,conflict,Javascript,Jquery,Plugins,Makefile,Conflict,我有一个小插件作为进度条工作。问题是:我无法更新progressbar的值,因为我所做的每一次更改都只会影响最后创建的对象=( 还有……如果我称之为: $(节点选择器).progBar().setValue()它可以调用正确的节点,但会丢失配置对象 请遵循以下代码: var-elm1; var-elm2; $(函数($){ $.fn.progBar=函数(配置){ if(typeof(config)=“string”){ config={'text':config}; } var config

我有一个小插件作为进度条工作。问题是:我无法更新progressbar的值,因为我所做的每一次更改都只会影响最后创建的对象=(

还有……如果我称之为: $(节点选择器).progBar().setValue()它可以调用正确的节点,但会丢失配置对象

请遵循以下代码:

var-elm1;
var-elm2;
$(函数($){
$.fn.progBar=函数(配置){
if(typeof(config)=“string”){
config={'text':config};
}
var config=$.extend({
“文本”:false
},config);
返回此。每个(函数(){
var$this=$(this);//$这是主元素
$this.css(“宽度”,“200px”)
$this.css(“填充”,“4px10px”)
$this.css(“文本对齐”、“居中”)
$this.css(“背景”,“#eee”)
$this.css(“字体重量”、“粗体”)
$this.css(“边框”,“1px实心#00F”)
$this.html(config.text)
$.fn.setValue=函数(newValue){
$this.html(config.text+“”+newValue)
};
});
};
elm1=new$(“#elm1”).progBar(“这是第一个…”)
elm2=new$(“#elm2”).progBar(“这是第二个…”)
//下面的两行仅影响#elm2对象
elm1.设定值(“第一个”)
elm2.setValue(“second”)//这将覆盖上面的行
});

返回
此。每个…
都是问题的原因-您正在为使用progBar方法创建的所有实例重新分配setValue函数。此更新应使您走上正确的方向:

var-elm1;
var-elm2;
$(函数($){
$.fn.progBar=函数(配置){
if(typeof(config)=“string”){
配置={
“文本”:配置
};
}
var config=$.extend({
“文本”:false
},config);
css(“宽度”,“200px”)
css(“填充”,“4px10px”)
css(“文本对齐”、“居中”)
css(“背景”,“#eee”)
css(“字体大小”、“粗体”)
这个.css(“边框”,“1px实体#00F”)
this.html(config.text)
this.setValue=函数(newValue){
var currentInnerText=this.html();
this.html(currentInnerText+“”+newValue)
};
归还这个;
};
elm1=new$(“#elm1”).progBar(“这是第一个…”);
elm2=new$(“#elm2”).progBar(“这是第二个…”);
//下面的两行仅影响#elm2对象
elm1.设定值(“第一”);
elm2.setValue(“second”);//这将覆盖上面的行
});

很高兴听到。如果这回答了您的问题,请单击答案左侧的复选标记接受。谢谢!