2010-03-23 39 views
7

Bir kullanıcı arama kutusuna yazmaya başladığında, öneri sayfası, bu nama ile eşleşen tüm koleksiyonlardan en son öğeyi ve diğer verileri döndürür.JQueryUI otomatik tamamlama öğesine bir bağlantı ekleme

Bu öğeyi (resmi boyunca) ve "bu koleksiyondaki tüm öğeleri görme" bağlantısına sahip bir bağlantıyı göstermek istiyorum.

I (çoğunun) yapabileceği aşağıdaki kodla:

$('#search').autocomplete({ 
    source: function (request, response) { 
     $.ajax({ 
      url: suggesturl, 
      dataType: 'json', 
      data: request, 
      success: function (data) { 
       response(data.map(function (value) { 
        return { 
         'label': '<img src="' + value.thumbsmall + '" />' + value.name + '<a href="/">More items from this collection...</a>', 
         'value': value.fullname 
        }; 
       })); 
      } 
     }); 
    }, 
    minLength: 3 
}) 
sorun bağlantı onu tıklandığında kutusunda, görünür halde ihmal ve varsayılan select eylemdir alır, yani

yürütülür (öğenin value metin kutusuna yerleştirilir).

cevap

6

Birkaç seçeneğiniz var gibi görünüyor. Öncelikle, otomatik tamamlama başlatıcısındaki seçim seçeneğini kullanarak kendi seçim işleminizi belirtebilirsiniz.

$(selector).autocomplete({ 
    source: ... , 
    select: function(value, data){ 
      if (typeof data == "undefined") { 
       emitMessage('You selected: ' + value + "<br/>"); 
      } else { 
       emitMessage('You selected: ' + data.item.value + "<br/>"); 
      } 
    } 
}); 

yeterli değilse, nedense, o zaman otomatik tamamlama listesi için kendi içeriğinizi oluşturabilir ve istediğiniz kadar bu şekilde olabildiğince çok kontrole olsun.
Bunu, her öğenin listede oluşturulmasını sağlayan otomatik tamamlama çağrıları olan _renderItem fn harfini ekleyerek yaparsınız. Nasıl yapılacağı konusunda this answer kontrol edin. V1.8rc3'te çalışır.

Ben _renderItem size tıklanabilir <span> işlemek ve Tıklama etkinliğini istediğiniz herhangi mantık eklemek herhalde. O yol giderseniz

, varsayılan bir tıklama işlemini kapatmak için bir ihtiyaç olabilir. Otomatik tamamlamanın, tıklama etkinliğini sağlayan öğe için bir <a> kullandığını düşünüyorum. Bu durumda, söz konusu tıklama işleyicisi unset gerekir.

+0

Merhaba, soruma bakmak ister misiniz? Cevabınız alakalı görünüyor, ama nasıl uygulanacağını bilmiyorum. http://stackoverflow.com/questions/6577761/how-can-i-make-this-link-clickable-in-jquery-ui-autocomplete-uncaught-typeerror – noli

İlgili konular