повторное использование определений конфигурации в javascript jquery - PullRequest
0 голосов
/ 11 июля 2011

Я пытаюсь повторно использовать некоторые javascript / jquery

    var my_conf = {
        //I would like to re-use the 'source' definition
        source: function (request, response) {
            $.ajax({
                url: site_url() + 'ajax_forms/auto_contact', 
                dataType: "json",
                data: {
                        term: $("#creditor_name").val(),
                        search_city: $("#search_city").val()
                },

             success: function (data) {
                    var suggestions = [];
                    $.each(data,function(i, val){
                        suggestions.push(({label:data[i]['Description'], value: data[i]['Description'], real_value: data[i]['uniqContactID']}))
                    });
                    response(suggestions);
                }
            });
        },

       //The select definition isn't re-usable ... it changes in every use.
       select: function(event, ui) { 
            $file_number = $("#hidden_file_number").val();
            load_url = $("#hidden__url").val() +  ui.item.real_value;
            load_div = $("#hidden__div").val();
            load_spinner = $("#hidden__spinner").val();
            $(load_spinner).html(ajax_load);
            $(load_div).empty().load(load_url);
       },
       minLength: 2
    }

Я должен использовать переменную config 'my_conf' в разных местах моего кода ... но раздел 'source' всегда одинаков .. раздел 'select' всегда отличается.

Как мне организовать свой код так, чтобы я только один раз писал раздел 'source'?

Спасибо ... что-то простое ускользает от меня.

1 Ответ

0 голосов
/ 11 июля 2011

Вы можете поместить его в именованную функцию и использовать позже.

    function reuse_me(request, response) {
        $.ajax({
            url: site_url() + 'ajax_forms/auto_contact', 
            dataType: "json",
            data: {
                    term: $("#creditor_name").val(),
                    search_city: $("#search_city").val()
            },

         success: function (data) {
                var suggestions = [];
                $.each(data,function(i, val){
                    suggestions.push(({label:data[i]['Description'], value: data[i]['Description'], real_value: data[i]['uniqContactID']}))
                });
                response(suggestions);
            }
        });
    }

var my_conf = {
    //I would like to re-use the 'source' definition
    source: reuse_me,

   //The select definition isn't re-usable ... it changes in every use.
   select: function(event, ui) { 
        $file_number = $("#hidden_file_number").val();
        load_url = $("#hidden__url").val() +  ui.item.real_value;
        load_div = $("#hidden__div").val();
        load_spinner = $("#hidden__spinner").val();
        $(load_spinner).html(ajax_load);
        $(load_div).empty().load(load_url);
   },
   minLength: 2
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...