2011-04-18 31 views
8

पर किसी आइटम को जोड़ना वर्तमान में, मैं एक टेक्स्टबॉक्स पर jQuery UI स्वत: पूर्ण का उपयोग कर रहा हूं जो एक ASHX फ़ाइल का संदर्भ देता है।एक jQuery UI स्वत: पूर्ण

सबकुछ काम कर रहा है, सिवाय इसके कि मैं सूची के अंत में एक आइटम जोड़ना चाहता हूं: "आइटम नहीं मिला? नया आइटम जोड़ने का अनुरोध करने के लिए यहां क्लिक करें।"

मैंने कोड की पंक्तियों का पालन करने की कोशिश की, लेकिन यह सब कुछ आइटम स्वरूपित किया गया था, मैं संलग्न करने में असमर्थ था।

data("catcomplete")._renderItem = function(ul, item) { 
     return $("<li></li>") 
      .data("item.catcomplete", item) 
      .append($("<a class='ui-menu-item'></a>").text(item.label)) 
      .appendTo($('ul').last('.autocomplete-category')); 
    }; 

संकेत? युक्तियाँ? बहुत अधिक gracias! : डी

उत्तर

9

आपको Open event आग के बाद अपनी अतिरिक्त प्रविष्टि जोड़नी चाहिए। इससे आपको प्रत्येक तत्व के बजाए सूची में पहुंच मिल जाएगी, जो कि आप बाद में हैं, _renderItem आपको पहुंच प्रदान कर रहा है।

$("#myBox").autocomplete({ 
     source: "[URL]", 
     minLength: 2, 
     open: function(event, ui) { 
      $("ul.ui-autocomplete.ui-menu .ui-menu-item:odd").css("background-color","#dedede"); 
     } 
    }); 
+1

बहुत बहुत धन्यवाद! मैं इसके साथ खेलूँगा। 'खुला: समारोह (घटना, ui) { //$("ul.ui-autocomplete.ui-menu .ui-मेनू आइटम: अब तक, मैं निम्नलिखित किया था अजीब"।) सीएसएस ("पृष्ठभूमि -color "," #dedede "); var url = "आइटम नहीं मिल रहा है? new आइटम जोड़ने का अनुरोध करें!"; $ ("ul.ui-autocomplete.ui-menu")। संलग्न करें (यूआरएल); } ' ऐसा लगता है कि मैं सूची के अंत में एक आइटम जोड़ सकता हूं, अब यह सुनिश्चित करना होगा कि यह एक क्लिक करने योग्य यूआरएल है। – curiousdork

+0

कोई बात नहीं, मैंने इसे समझ लिया। :) – curiousdork

1

आप _renderItem साथ बेला के लिए नहीं करना चाहती:

यहाँ एक उदाहरण प्रविष्टियों को सूची में डाला जा दिया है स्टाइल है। वह एफएन है जो एक आइटम प्रस्तुत करता है; इसे सुझावों की सूची में प्रत्येक आइटम के लिए एक बार कहा जाता है।

आप क्या करना चाहते हैं _renderMenu फ़ंक्शन बंदरपैच है। jQuery यूआई के अन्य संस्करणों के लिए एक ही

_renderMenu: function(ul, items) { 
    var self = this; 
    $.each(items, function(index, item) { 
     self._renderItem(ul, item); 
    }); 
}, 

यह शायद मूल रूप से बताया गया है: jQuery यूआई 1.8.6 में मूल परिभाषा इस तरह है।

$.each करने के बाद, अपना अतिरिक्त आइटम जोड़ने के लिए इसे पैच करें।

+0

यह बहुत भंगुर लगता है। यदि यूआई टीम ने यह अपडेट करने का निर्णय लिया कि '_renderMenu' फ़ंक्शन कैसे काम करता है, तो आपको अपना कोड अपडेट करना होगा, क्योंकि' _renderMenu' सार्वजनिक API का हिस्सा नहीं है। – cdeszaq

+0

हां, ठीक है, यही कारण है कि इसे * बंदरगाह * कहा जाता है। तकनीक पर अधिक जानकारी के लिए http://stackoverflow.com/questions/2435964/jqueryui-how-can-i-custom-format-the-autocomplete-plug-in-results/2436493#2436493 देखें। – Cheeso

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