2011-06-22 11 views
9

Aşağıdaki kod verildiğinde, işlevine, $.ajax çağrısında bulunan otomatik tamamlama olan girişe nasıl başvurabilirim? Ne $(this) veya $e çalışır.JQuery otomatik tamamlamasındaki metin girişine başvurma

$('.parent-input').autocomplete({ 
    source: function(request, response) { 
    var element = this.element; // <-- this.element is the input the widget is bound to. 
    $.ajax({ 
     url: "/chunky/bacon", 
     dataType: 'json', 
     data: { 
     product_id: $('#product-id').val(), 
     term: request.term 
     }, 
     success: function(data){ 
     var resultCount = data.length; 
     // element still refers to the input the widget is bound on. 
     // for example: 

     element.addClass("blue"); 

     response(data); 
     } 
    }); 
    }, 
    minLength: 2, 
    select: function(event, ui){ 
    addAssociatedProduct(ui.item.id, ui.item.value); 
    $(this).val(''); 
    return false; 
    } 
}); 
+0

orada sınıfın birden elemanları 'ebeveyn-input' Are:

$('.parent-input').autocomplete({ source: function(request, response) { $.ajax({ url: "/chunky/bacon", dataType: 'json', data: { product_id: $('#product-id').val(), term: request.term }, success: function(data){ var resultCount = data.length; // I NEED TO REFERENCE .parent-input HERE response(data); } }); }, minLength: 2, select: function(event, ui){ addAssociatedProduct(ui.item.id, ui.item.value); $(this).val(''); return false; } }); 
hughes

+0

Birden çok örnek var – bjork24

cevap

8

( this.element başka jQuery çağrısına sarmak gerek aslında yok yani bir jQuery nesnesidir) this.element bir başvuru kaydedilsin mi? Değilse, neden sadece 'ebeveyn-girişi' nin bir kimliğini vermek ve seçici işlevini kullanarak başvurmak?
+0

Eğer 'var element = this;' kullanacaksanız, muhtemelen 'context: element' parametresini ajax çağrısına eklemeniz gerekecek – hughes

+0

@hughes: Aslında seni düşünmüyorum * var, ama bu AJAX çağrısı başarı fonksiyonunun içinde '$ (this)' kullanmak için sağlayacaktır. –

+0

Oh evet, haklısın. Bu durumda, 'element' global bir değişken olur mu? Yoksa elementin beyanı kapsamındaki başarı işlevi mi? Yoksa JS'de bile sorun değil mi? – hughes

İlgili konular