2016-04-08 16 views
1

tetiklenmediğini, olay başlangıçta şöylejQuery, keyUp olay benim sistemde var bir keyup olayı üstlenmeden bir sorun var

$('#quotation_search_client').on('keyup',QuotationServices.searchClient({social_reason: $('#quotation_search_client').val()})); 

Ve böyle fonksiyon "searchClient" define: Bu olarak değiştirin,

QuotationServices.searchClient = function(params){ 
     param=$('#quotation_search_client').val(); 
     if(param.length>=4){ 
      var clients=ClientServices.getByFilter(params); 
      var addresses=ClientServices.getAddresses(clients.clients); 
      QuotationServices.fillClients(clients.clients, addresses);  
     }else{ 
      $('#customers_results').html(""); 
     } 
    }; 

Bu çalışmayı durdurur n ben bir şey yazdığımda olur. Konsolda herhangi bir hata gösterilmiyor, bu yüzden searchClient işlevinin başında bir console.log yazdım ve sayfam yüklendiğinde, params.social_reason'ın boş bir dizeyle geldiğini, ancak bir şey yazdığımda Hiçbir şey olmamış dedim. Neyi kaçırdığımı bilmiyorum, tek yaptığım olayın kodunu searchClient işlevine kopyalayıp yapıştırmak ve var parametrelerini silmek (çünkü bunu bir parametre olarak alacağım), herhangi bir yardım mı?

+1

aynı cevabı farklı soru. Http://stackoverflow.com/q/8462381/497418 veya diğer ilgili soruların sayısız herhangi birini kullanarak düşündüm, ama çoğunlukla 'setTimeout' ile ilgili. Sonunda, aynı temel sorun. – zzzzBov

cevap

1

Düğme olayının bildirilmesinden hemen sonra işlevi yürütüyorsanız, bu durumda işlevi anahtar olayına geçiremezsiniz.

yerine yapmalıdır:

$('#quotation_search_client').on('keyup',QuotationServices.searchClient); 

Ve değişikliği:

QuotationServices.searchClient = function(){ 
    var params = {social_reason: $('#quotation_search_client').val()} 
    var param = $('#quotation_search_client').val(); 
    if(param.length>=4){ 
     var clients=ClientServices.getByFilter(params); 
     var addresses=ClientServices.getAddresses(clients.clients); 
     QuotationServices.fillClients(clients.clients, addresses);  
    }else{ 
     $('#customers_results').html(""); 
    } 
}; 
+0

İlginç olan sorun, paramın kod bloğunda olmasını istemem çünkü bu işlevi başka bir öğeye eklemek istiyorum ama farklı bir params değeriyle, ama bu gerçekten de sorumu yanıtladı. Bunu sanırım başka bir şekilde yapmak zorundayım. – Dukra

İlgili konular