44 lines
1.4 KiB
JavaScript
44 lines
1.4 KiB
JavaScript
|
|
/*
|
||
|
|
* jQuery liHarmonica v 1.0
|
||
|
|
*
|
||
|
|
* Copyright 2013, Linnik Yura | LI MASS CODE | http://masscode.ru
|
||
|
|
* http://masscode.ru
|
||
|
|
* Free to use
|
||
|
|
*
|
||
|
|
* 04.01.2013
|
||
|
|
*/
|
||
|
|
(function($){
|
||
|
|
$.fn.liHarmonica = function(params){
|
||
|
|
var p = $.extend({
|
||
|
|
currentClass:'cur', //Класс для выделенного пункта меню
|
||
|
|
onlyOne:true, //true - открытым может быть только один пункт,
|
||
|
|
//false - число открытых одновременно пунктов не ограничено
|
||
|
|
speed:500 //Скорость анимации
|
||
|
|
}, params);
|
||
|
|
return this.each(function(){
|
||
|
|
var
|
||
|
|
el = $(this).addClass('harmonica'),
|
||
|
|
linkItem = $('ul',el).prev('a');
|
||
|
|
el.children(':last').addClass('last');
|
||
|
|
$('ul',el).each(function(){
|
||
|
|
$(this).children(':last').addClass('last');
|
||
|
|
});
|
||
|
|
$('ul',el).prev('a').addClass('harFull');
|
||
|
|
el.find('.'+p.currentClass).parents('ul').show().prev('a').addClass(p.currentClass).addClass('harOpen');
|
||
|
|
linkItem.on('click',function(){
|
||
|
|
if($(this).next('ul').is(':hidden')){
|
||
|
|
$(this).addClass('harOpen');
|
||
|
|
}else{
|
||
|
|
$(this).removeClass('harOpen');
|
||
|
|
}
|
||
|
|
if(p.onlyOne){
|
||
|
|
$(this).closest('ul').closest('ul').find('ul').not($(this).next('ul')).slideUp(p.speed).prev('a').removeClass('harOpen');
|
||
|
|
$(this).next('ul').slideToggle(p.speed);
|
||
|
|
}else{
|
||
|
|
$(this).next('ul').stop(true).slideToggle(p.speed);
|
||
|
|
}
|
||
|
|
return false;
|
||
|
|
});
|
||
|
|
});
|
||
|
|
};
|
||
|
|
})(jQuery);
|