如何将变量传递给jQuery插件

时间:2012-07-11 18:33:37

标签: jquery jquery-plugins

我有一个jQuery插件,有人帮我写。我最初只需要它一次使用,所以硬编码直接在插件中的文本框值查找,但现在我想从我调用它的地方传递该变量,所以我可以多次重复使用相同的插件。

这就是我所拥有的,我将发布两个插件,这样你就会看到我做了什么让它并肩工作。我想传递UserSearch:变量而不是硬编码。

(function ($) {
$.checkMultipleUsers = (function (my) {
    my.CheckUsers = function () {
            return $.ajax({
                type: "POST",
                url: "http://localhost:52350/FabRouting/Webservice/UserList.asmx/GetUserCount",
                data: JSON.stringify({ UserSearch: $("[id$=txtSubmittedBy]").val() }),
                contentType: "application/json; charset=utf-8",
                dataType: "json",
            });
    };
    return my;
})({});
})(jQuery);

(function ($) {
$.checkMultipleUsers2 = (function (my) {
    my.CheckUsers2 = function () {

        return $.ajax({
            type: "POST",
            url: "http://localhost:52350/FabRouting/Webservice/UserList.asmx/GetUserCount",
            data: JSON.stringify({ UserSearch: $("[id$=txtOther]").val() }),
            contentType: "application/json; charset=utf-8",
            dataType: "json",
        });

    };
    return my;
})({});
})(jQuery); 

我称之为:

promise = $.checkMultipleUsers.CheckUsers();
                    promise.success(function (count) {
}

promise2 = $.checkMultipleUsers2.CheckUsers2();
                    promise2.success(function (count) {
}

另外,虽然我发布了这个插件,但它写得不错吗?我不明白为什么它需要checkMultipleUsers和CheckUsers。看起来它是嵌入在另一个函数中的函数,我不明白为什么。

1 个答案:

答案 0 :(得分:2)

这不是一个真正的jQuery插件,只需一个普通的功能即可完成。

function CheckUsers(searchValue){
        return $.ajax({
            type: "POST",
            url: "http://localhost:52350/FabRouting/Webservice/UserList.asmx/GetUserCount",
            data: JSON.stringify({ UserSearch: searchValue}),
            contentType: "application/json; charset=utf-8",
            dataType: "json"
        });
}

然后你可以像CheckUsers($('#myInput').val());

一样调用它