2010-01-22 12 views
5

मैं jQuery स्वत: पूर्ण उपयोग कर रहा हूँ, और मैं इन वार्सjQuery स्वत: पूर्ण के अंत पर कस्टम सूची आइटम जोड़ने के लिए कैसे परिणाम

$("#some_id").autocomplete("search.php?in=somewhere", { 
     width: 270, 
     selectFirst: false 
}); 
$('#some_id').setOptions({max: 5}); 

निर्धारित किया है आप इसे रिटर्न 5 सूची आइटम (परिणाम) देख सकते हैं, और मैं छठी सूची वस्तु जोड़ना चाहते हैं जहां कुछ पाठ दिखाया जाना चाहिए और इस 5 को छोड़कर कितने परिणाम मौजूद हैं।

मैं यह कैसे कर सकता हूं?

उत्तर

3

यह शायद इस समारोह के आसपास एक संपादन की आवश्यकता के लिए जा रहा है।

function fillList() { 
     list.empty(); 
     var max = limitNumberOfItems(data.length); 
     for (var i=0; i < max; i++) { 
      if (!data[i]) 
       continue; 
      var formatted = options.formatItem(data[i].data, i+1, max, data[i].value, term); 
      if (formatted === false) 
       continue; 
      var li = $("<li/>").html(options.highlight(formatted, term)).addClass(i%2 == 0 ? "ac_even" : "ac_odd").appendTo(list)[0]; 
      $.data(li, "ac_data", data[i]); 
     } 
     // INSERT YOUR ADDITIONAL ENTRY HERE... 
     listItems = list.find("li"); 
     if (options.selectFirst) { 
      listItems.slice(0, 1).addClass(CLASSES.ACTIVE); 
      active = 0; 
     } 
     // apply bgiframe if available 
     if ($.fn.bgiframe) 
      list.bgiframe(); 
    } 
0

वैसा करने के लिए वास्तविक प्लगइन को संशोधित करना होगा ...

+0

के बारे में होना चाहिए लेकिन मैं किसी भी सुराग, कहाँ और कोड के कौन से भाग संशोधित करने की जरूरत नहीं मिला है आप कह सकते हैं मेरा जो समारोह पर मैं jquery.autocomplete.js में काम करते हो तुम हूँ –

+0

कोड के माध्यम से पढ़ना है और यह समझना है कि संशोधनों की क्या आवश्यकता है ... ऐसा करने का कोई आसान तरीका नहीं है (जब तक कि आप एक प्लगइन नहीं ढूंढ पाते जो पहले से ही करता है) – Ariel

3

बहुत बहुत धन्यवाद! यहाँ मैं क्या किया

function fillList() { 
    list.empty(); 
    var max = limitNumberOfItems(data.length); 
    for (var i=0; i < max; i++) { 
    if (!data[i]) 
    continue; 
    var formatted = options.formatItem(data[i].data, i+1, max, data[i].value, term); 
    if (formatted === false) 
    continue; 
    var li = $("<li/>").html(options.highlight(formatted, term)).addClass(i%2 == 0 ? "ac_even" : "ac_odd").appendTo(list)[0]; 
    $.data(li, "ac_data", data[i]); 
    } 

    listItems = list.find("li"); 

    //////////////////////////// TOM ////////////////////////////////////////////////////////////////////////////////// 
    if(data.length > 5){ 
    if((data.length-5) == 1){ 
    listItems[4].innerHTML +='<div style="position:absolute; top:127px; left:0px; width:260px;text-align:right;" >'+(data.length-5)+' item isn\'t shown</div>'; 
    } 
    else{ 
    listItems[4].innerHTML +='<div style="position:absolute; top:127px; left:0px; width:260px;text-align:right;" >'+(data.length-5)+' items aren\'t shown</div>'; 
    } 
    } 
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 

    if (options.selectFirst) { 
    listItems.slice(0, 1).addClass(CLASSES.ACTIVE); 
    active = 0; 
    } 
    // apply bgiframe if available 
    if ($.fn.bgiframe) 
    list.bgiframe(); 
} 
2

यहाँ मैं क्या किया, मैं इस उदाहरण (शायद, डिफ़ॉल्ट एचटीएमएल के मामले के लिए यह थोड़ा :) फेरबदल किया जा सकता है के लिए मेरे बैकएंड में एक json है, लेकिन पूरी है विचार, एक ही

$('#search').autocomplete({ 
    source: function(request, response) { 
     var requestUrl = 'search.php'; 
     requestUrl += '?term=' + $('#search').val(); 
     $.getJSON(requestUrl, request, function(data){ 
      // I know here - what kind of array of json objects I'll get as 
      // a result, with <li> elements it should be even easier (I guess) 
      // AND: this will add item, if there are more than 5 elms in the list, 
      // but you should get the idea 
      if (5 < data.length) { 
       data.push({ 
        id: -1, 
        value: '', 
        label: 'Put your own question...' 
       }); 
      } 
      response(data); 
     }); 
    } 
}); 
संबंधित मुद्दे