के साथ चुनिंदा मेनू में विकल्प में चयनित विशेषता जोड़ें मैं बदसूरत डिफ़ॉल्ट चयनों को प्रतिस्थापित करने के लिए एक चयन मेनू प्लगइन बना रहा हूं और विभिन्न ओएस में सुसंगत हूं।jQuery
यहाँ डेमो (केवल फ़ायरफ़ॉक्स और वेबकिट)
http://spacirdesigns.com/selectMenu/
यह पहले से ही काम कर रहा है है, लेकिन मैं परेशानी हो रही विकल्प के लिए "चयनित" विशेषता बताए हूँ। कोड किसी अन्य विशेषता के साथ काम करता है लेकिन मैं इसे चयनित विशेषता के साथ काम नहीं कर सकता।
यह काम करता है:
select.find('option')
.removeAttr('whatever')
.eq(index).attr('whatever', 'hello');
यह नहीं करता है:
select.find('option')
.removeAttr('selected')
.eq(index).attr('selected', 'selected');
और यहाँ कोड अब तक बताया गया है:
(function($){
$.fn.selectMenu = function() {
var select = this;
select.hide();
var title = select.attr('title');
var arrow = 'img/arrow.png';
var items = '';
select
.children('option')
.each(function(){
var item = $(this).text();
if ($(this).val() != '') {
$(this).attr('value', item);
}
items += '<li>' + item + '</li>'
});
var menuHtml =
'<ul class="selectMenu">' +
'<img src="' + arrow + '" alt=""/>' +
'<li>' + title + '</li>' +
'<ul>' + items + '</ul>' +
'</ul>';
select.after(menuHtml);
var menu = $(this).next('ul');
var list = menu.find('ul');
menu
.hover(function(){}, function(){
list.hide();
})
.children('li').hover(function(){
list.show();
});
menu.find('ul li').click(function(){
var index = $(this).index();
menu.children('li').text($(this).text());
select.find('option')
.removeAttr('selected')
.eq(index).attr('selected', 'selected');
list.hide();
});
};
})(jQuery);
क्या आपने '.attr ('चयनित', सत्य) का उपयोग करने का प्रयास किया है? – NT3RP
मुझे पता है कि यह प्लगइन चयनित का समर्थन करता है: http://programmingdrunk.com/current-projects/dropdownReplacement/#use – mkoryak
'.attr ('चयनित', सत्य) 'या तो काम नहीं करता है। – elclanrs