मैं निम्नलिखित जैसे जावास्क्रिप्ट के साथ ट्विटर बूटस्ट्रैप टूलटिप्स का उपयोग कर रहा हूं:
$('a[rel=tooltip]').tooltip();
मेरा मार्कअप इस तरह दिखता है:
<a rel="tooltip" title="Not implemented" class="btn"><i class="icon-file"></i></a>
यह ठीक काम करता है, लेकिन मैं <a>तत्वों को गतिशील रूप से जोड़ता हूं और टूलटिप्स उन गतिशील तत्वों के लिए दिखाई नहीं दे रहे हैं। मुझे पता है कि यह केवल इसलिए है कि जब दस्तावेज़ ख़त्म हो जाए तो मैं एक बार .tooltip () को बांध दूं $(document).ready(function()।
मैं इसे गतिशील रूप से बनाए गए तत्वों से कैसे बांध सकता हूं? आमतौर पर मैं इसे जकुरी लाइव () विधि के माध्यम से करता हूं। हालांकि, वह कौन सी घटना है जिसे मैं बांधने के लिए उपयोग करता हूं? मुझे यकीन नहीं है कि jquery .live () के साथ बूटस्ट्रैप .tooltip () को कैसे हुक किया जाए।
मुझे इस काम को करने का एक तरीका मिला है:
/* Add new 'rows' when plus sign is clicked */
$("a.add").live('click', function () {
var clicked_li = $(this).parent('li');
var clone = clicked_li.clone();
clone.find(':input').each(function() {
$(this).val('');
});
clicked_li.after(clone);
$('a[rel=tooltip]').tooltip();
});
यह काम करता है, लेकिन एक प्रकार का हैकिश लगता है। मैं भी $ (तैयार) कॉल में सटीक .tooltip () लाइन को कॉल कर रहा हूं। तो, क्या ऐसे तत्व मौजूद हैं जब पृष्ठ पहले लोड होता है और उस चयनकर्ता का मिलान टूलटिप के साथ दो बार होता है?
मैं इस दृष्टिकोण के साथ कोई समस्या नहीं देखता। मैं सिर्फ एक सर्वोत्तम अभ्यास या व्यवहार की समझ की तलाश में हूं।
relविशेषता को हाइजैक करने के लिए यह बुरी शैली लगती है । यह गैर-शब्दार्थ है और एक दशक पहले हैक के रूप में उत्पन्न हुआ था। आजकल, हर एक ब्राउज़र कई वर्षों से वापस जा रहा है, data-*विशेषताओं का समर्थन करता है और उनके उपयोग न करने का कोई और कारण नहीं है।