// Line 39 -- Add "<img>"
// HTML template for the dropdowns
dropdownTemplate = [
'<div class="dk_container" id="dk_container_{{ id }}" tabindex="{{ tabindex }}">',
'<a class="dk_toggle">',
'<span class="dk_label">{{ label }}<img src="{{ icon }}"/></span>', /* << */
'</a>',
'<div class="dk_options">',
'<ul class="dk_options_inner">',
'</ul>',
'</div>',
'</div>'
].join(''),
// Line 51 -- Add "<img>" (string broken down here for readability)
// HTML template for dropdown options
optionTemplate = '<li class="{{ current }}">' +
'<a data-dk-dropdown-value="{{ value }}">{{ text }}' +
'<img src="{{ icon }}"/></a></li>'; /* << */
इसके अलावा, प्लगइन के विकल्प
// Line 98 -- add "data.icon"
// Don't do anything if we've already setup dropkick on this element
if (data.id) {
return $select;
} else {
data.settings = settings;
data.tabindex = tabindex;
data.id = id;
data.$original = $original;
data.$select = $select;
data.value = _notBlank($select.val()) || _notBlank($original.attr('value'));
data.label = $original.text();
data.options = $options;
/* Add this attribute */
data.icon = $original.data('icon'); /* << */
}
में निम्नलिखित पंक्ति जोड़ भीतर निम्न पंक्ति से पहले _build
समारोह,
// Line 318
if (view.options && view.options.length) {
निम्न पंक्ति जोड़ें:
// Line 317. To be placed after other "template = template.replace" statements
template = template.replace('{{ icon }}', view.icon);
अंत में, के बाद
// Line 321
var // ...
oTemplate = optionTemplate
;
पाश अंदर, निम्न पंक्ति
// To be placed after other "oTemplate = oTemplate.replace" statements
oTemplate = oTemplate.replace('{{ icon }}', view.icon);
यह सबसे अच्छा कोडन अभ्यास (monkeypatching) नहीं हो सकता है के रूप में जोड़ें कोड टूट सकता है जब icon
डेटा विशेषता सेट नहीं है।
मैं आपको icon
डेटा विशेषता मान के मूल्य की जांच करने के लिए कुछ कोड जोड़ने और दो टेम्पलेट्स बनाने के लिए सलाह देता हूं: एक विकल्प के लिए और दूसरा डिफ़ॉल्ट ड्रॉपडाउन के लिए। फिर कोई चुनने के लिए कौन सा टेम्पलेट चुन सकता है।_build
फ़ंक्शन के लिए यह वही है, जैसा कि बंदरपैचिंग के साथ यह view.icon
मान (यदि यह परिभाषित किया गया है या नहीं) पर निर्भर करता है।
यह उत्तर शानदार है। आप, महोदय, कई और अपवित्र होना चाहिए। – courtsimas
एफवाईआई, आपको पाठ के साथ .dk_label को प्रतिस्थापित करने के लिए रीसेट और _updateFields विधियों को अपडेट करना होगा, लेकिन इसके बजाय छवि के साथ। – courtsimas