वहाँ maaaaany jQuery प्लगइन्स पहले से ही ऐसा कर रहे हैं, लेकिन यहां एक छोटे से प्लगइन मैं 10 मिनट में लिपटे है या नहीं:
(function($,window,undefined){
var o;
$.fn.amazonLikeMenu = function(data,options){
o = $.extend({},options,$.fn.amazonLikeMenu.defaultOptions);
return this.each(function(){
createMenu($(this).addClass(o.classPrefix + '_container'),data);
});
};
$.fn.amazonLikeMenu.defaultOptions = {
classPrefix : "menu",
eventPrefix : "menu"
};
function createMenu(container,data,options){
container.data('initial_data',data);
var ul = $('<ul />').addClass(o.classPrefix + '_ul').appendTo(container),
liTemplate = $('<li />').addClass(o.classPrefix + '_li'),
descTemplate = $('<span />').addClass(o.classPrefix + '_desc'),
linkTemplate = $('<a href="#"/>').addClass(o.classPrefix + '_link'),
hTemplate = $('<h3 />').addClass(o.classPrefix + '_link');
$.each(data,function(i,el){
var li = liTemplate.clone().appendTo(ul);
if(el.title && el.link)
if(typeof el.link === 'string')
linkTemplate
.clone()
.text(el.title)
.attr('href',el.link)
.appendTo(li);
else
{
createMenu(li.addClass(o.classPrefix + '_has_submenu').append(hTemplate.clone().text(el.title)),el.link,o);
}
if(el.desc)
descTemplate
.clone()
.text(el.desc)
.appendTo(li);
});
};
})(jQuery,window)
आपका मेनू आइटम वस्तुओं का संग्रह से मिलकर बनता है (उपयोगी अगर आप मेनू उत्पन्न गतिशील रूप से एक सेवा से डेटा के साथ):
[
{
title : 'link 1',
link : '#page1'
},
{
title : 'link 2',
link : '#page2',
desc : 'this is an awesome link'
},
{
title : 'link 3',
link : [
{
title : "submenu link1",
desc : "sample description",
link : "#submenu_link_1"
},
{
title : "submenu link2",
link : "#submenu_link_2"
},
{
title : "submenu link3",
desc : "sample description",
link : "#submenu_link_3"
}
],
desc : 'I have a submenu'
},
{
title : 'link 3',
link : '#page3',
desc : 'I dont have a submenu :(('
}
];
यहाँ एक डेमो है: http://jsfiddle.net/gion_13/6QXZt/।
यह अनुकूलन योग्य है, इसलिए इसे अमेज़ॅन पर बिल्कुल ठीक दिखने के लिए समायोजित किया जा सकता है।
पीएस : इस बात को ध्यान में रखना चाहिए कि इस मामले में सीएसएस भूमिका jquery/जावास्क्रिप्ट से अधिक है।
आप किस ब्राउज़र का समर्थन करना चाहते हैं? यह आसानी से अकेले सीएसएस का उपयोग कर किया जा सकता है। –