使用ajax创建Jquery插件

时间:2017-07-05 06:55:52

标签: jquery ajax plugins

这是我第一次创建插件。但我的插件有一些小问题。我在

下创建了一个简单的插件副本
$.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

当我启动单个实例时,我的插件工作正常,但是当我尝试创建多个实例时,只有最后一个实例正在运行。

1 个答案:

答案 0 :(得分:1)

我认为这是因为您在未使用element的情况下声明了var

这样您就将element声明为全局变量,因此element = $(this);window.element = $(this);基本相同。因此,第二个函数调用将覆盖element的第一个实例。

这应该只是一个简单的修复:var element = $(this);