Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Доработка раскрывающегося меню: переход по ссылке (https://javascript.ru/forum/jquery/41854-dorabotka-raskryvayushhegosya-menyu-perekhod-po-ssylke.html)

Claire 01.10.2013 20:12

Доработка раскрывающегося меню: переход по ссылке
 
Доброе время суток.
Помогите, пожалуйста, доработать скрипт.
Есть уже готовый для раскрывающегося меню, все отлично работает, но еще нужно, чтобы можно было переходить по ссылкам первого уровня, плюс по клику на них выезжало меню.
Работающий пример, чтобы было понятней - http://pro-potolok.com/potolki/
Код скрипта:
$(document).ready(function() {
	$('ul.nav ul, .news_sidebar ul ul').each(function(i) { // Check each submenu:
		if ($.cookie('submenuMark-' + i)) {  // If index of submenu is marked in cookies:
			$(this).show().prev().removeClass('collapsed').addClass('expanded'); // Show it (add apropriate classes)
           /* $("ul.nav li.level_1").after("<div class='li_shadow'></div>"); */
		}else {
			$(this).hide().prev().removeClass('expanded').addClass('collapsed'); // Hide it
		}
		$(this).prev().addClass('collapsible').click(function() { // Attach an event listener
			var this_i = $('ul.nav ul, .news_sidebar ul ul').index($(this).next()); // The index of the submenu of the clicked link
			if ($(this).next().css('display') == 'none') {
				$(this).next().slideDown(200, function () { // Show submenu:
					$(this).prev().removeClass('collapsed').addClass('expanded');
					cookieSet(this_i);
				});
			}else {
				$(this).next().slideUp(200, function () { // Hide submenu:
					$(this).prev().removeClass('expanded').addClass('collapsed');
					cookieDel(this_i);
					$(this).find('ul').each(function() {
						$(this).hide(0, cookieDel($('ul.nav ul, .news_sidebar ul ul').index($(this)))).prev().removeClass('expanded').addClass('collapsed');
					});
				});
			}
		return false; // Prohibit the browser to follow the link address
		});
	});
});
function cookieSet(index) {
	$.cookie('submenuMark-' + index, 'opened', {expires: null, path: '/'}); // Set mark to cookie (submenu is shown):
}
function cookieDel(index) {
	$.cookie('submenuMark-' + index, null, {expires: null, path: '/'}); // Delete mark from cookie (submenu is hidden):
}


Часовой пояс GMT +3, время: 18:12.