2011-07-11 4 views
0

私がしようとしている中、私は自分のコード内の様々な場所でのconfig変数「my_conf」を使用する必要があります...しかし、いくつかのJavaScript/jQueryのに再利用する構成定義の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 
    } 

を再利用 " source 'セクションは常に同じです。' select 'セクションは常に異なっています。

「ソース」セクションのみを一度書き込むようにコードを整理するにはどうすればよいですか?

ありがとうございました...シンプルなものが私を逃しています。

答えて

0

名前付き関数に入れて後で再利用することができます。

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 
} 
関連する問題