多次重用AJAX功能

Rya*_*yan 2 ajax jquery function reusability

目前我的AJAX调用是这样设置的,这样当检测到逗号键时,AJAX调用将触发:

$("#selector").on("keyup", function(e) {
    if (e.which === 188) {

        var search = $(this).val();

        function searchTag() {
            return $.ajax({
                cache:      false,
                url:        url,
                dataType:   "json",
                type:       "post",
                data:       {search: search}
            });             
        }

        searchTag().done(function(data) {
            //Success
        });
    }
});
Run Code Online (Sandbox Code Playgroud)

我希望稍后在我的代码中重用AJAX调用作为另一个事件监听器的一部分:

$("body").on("click", ".tag", function () {
    searchTag();
});
Run Code Online (Sandbox Code Playgroud)

如果不重写整个调用,如何使函数独立,以便可以在两种情况下使用它?

Wil*_*mer 6

将功能移到外面:

function searchTag(data) {
    var url = "yoururl";
    return $.ajax({
        cache:      false,
        url:        url,
        dataType:   "json",
        type:       "post",
        data:       data
    });             
}

$("#selector").on("keyup", function(e) {
    if (e.which === 188) {

        var search = {search: $(this).val()};


        searchTag(search).done(function(data) {
            //Success
        });
    }
});

$("body").on("click", ".tag", function () {
    searchTag({});
});
Run Code Online (Sandbox Code Playgroud)