这是我第一次创建插件。但我的插件有一些小问题。我在
下创建了一个简单的插件副本$.fn.myPlugin = function(url){
return this.each(function() {
element = $(this);
$.getJSON(url, function(response){
elem.val(response.init_value);
});
});
}
并像这样启动
$("#test1").myPlugin('/get1.json'); //this should value 1
$("#test2").myPlugin('/get2.json'); //this should value 2
但结果未按预期工作
Element #test1 has done nothing, no value (I think it is broken)
Element #test2 has value of 2
当我启动单个实例时,我的插件工作正常,但是当我尝试创建多个实例时,只有最后一个实例正在运行。
答案 0 :(得分:1)
我认为这是因为您在未使用element
的情况下声明了var
。
这样您就将element
声明为全局变量,因此element = $(this);
与window.element = $(this);
基本相同。因此,第二个函数调用将覆盖element
的第一个实例。
这应该只是一个简单的修复:var element = $(this);