2012-08-09 18 views
5

मैंने jquery-ui का उपयोग करके एक स्वतः पूर्ण कार्यान्वित किया है। मैं 10 को दिखाए गए आइटमों की संख्या और प्रत्येक आइटम कस्टम स्वरूपित करना चाहता हूं। यहां कोडjquery-ui-autocomplete - _renderMenu ओवरराइडिंग और _renderItem

$("#text1").autocomplete({ 
    minLength: 2, 
    source: function (request, response) { 
    var matcher = new RegExp($.ui.autocomplete.escapeRegex(request.term), "i") 
    , results = []; 
    $.each(source, function (i, value) { 
    if (matcher.test(value.value) && $.inArray(value.label, results) < 0) { 
    results.push(value.label); 
    } 
    }); 

    response(results); 
    } 
}).data("autocomplete") 
     ._renderMenu = function(ul, items) { 
     var self = this; 
     $.each(items, function (index, item) { 
      if (index < 10) { 
       $.ui.autocomplete.prototype._renderItem = function(ul, item) { 
       var re = new RegExp("^" + this.term, "i"); 
       var t = item.label.replace(re, "<span style='font-weight:bold;color: Blue;'>" + "$&" + "</span>"); 
       var listItem = $("<li></li>") 
           .data("item.autocomplete", item) 
           .append("<a>" + t + "</a>") 
           .appendTo(ul); 
       return listItem; 

       } 
      } 
      }); 
     }; 

ऐसा लगता है कि यह कोई परिणाम नहीं फेंक रहा है। इसके बारे में कोई मदद?

उत्तर

5

मैंने इसे समझ लिया। ऐसा लगता है कि मुझे _renderMenu और _renderItem दोनों को ओवरराइड करना है। यह अब काम करता है।

+0

हाय अनित, मुझे एक समान समस्या है। कोई भी मौका आप काम कोड पोस्ट कर सकते हैं? –

+1

@ बीटरूट-बीटरूट आपने _renderMenu और _renderItem को ओवरराइड किया है। कोड गहरा खोला गया है। लेकिन यहां वह संदर्भ है जिसे आप http://stackoverflow.com/questions/2435964/jqueryui-how-can-i-custom-format-the-autocomplete-plug-in-results –

+1

@Akit में देख सकते हैं, धन्यवाद आपका त्वरित उत्तर इस दौरान मुझे प्लगइन के मानक व्यवहार को पुन: पेश करने के लिए '._renderMenu' से' ._renderItemData' को कॉल करके परिणाम मिला। यह मेरे मामले में उपयुक्त है, क्योंकि मुझे बोग मानक मेनू आइटम चाहिए लेकिन विभाजक के साथ मेनू को खंडों में विभाजित करने के लिए। एक बार फिर धन्यवाद। –

संबंधित मुद्दे