Показване/Скриване на менюта с jQuery
Публикувана на 22 авг 2010, в 15:08 часаДобавена от Златко в категория JavaScript
Здравейте, реших да Ви покажа едно примерче, за разгъващи се менюта, с възможност за помнене (или иначе казано, ползване на бисквитки) в JavaScript. За да е по-атрактивно, ще използваме jQuery SlideToggle функцията.
Като за начало, ще трябва да инклуднете jQuery и плъгинаjQuery Cookie
И естествено, самата JavaScript функция, която да ни показва/скрива менютата.
- $(document).ready(function(){
- // Първо прекарваме всички линкове, съдържащи в себе си class="toggle"
- $("a[class='toggle']").each(function(){
- // правим една проверка, дали има записана бисквитка, с име ===
-
- (тоест, самото menu1 (примерно))
- if ($.cookie($(this).parents().next().attr('class'))) {
- // ако намери съвпадение, скриваме
- списъка, и заместваме "-" с "+" в линка
- $(this).parents().next().hide();
- $(this).html('+');
- }
- });
- // тук засичаме когато сме кликнали на линкът, за да покаже/скрие менюто
- $("a.toggle").click(function() {
- // вземаме името на класа от списъка за по-лесно
- var menu = $(this).parents().next().attr('class');
- // правим проверката дали трябва да се разгъне, или да се свие
- if ($(this).html() == '-') {
- // тук трябва да се скрие, затова скриваме го, добавяме бисквитка, с името на класа на списъка и променяме "-" с "+" в линка
- $('.' + menu).slideToggle(500);
- $.cookie(menu,'expand', { expires: 30 });
- $(this).html('+');
- }
- // ако пък трябва да се покаже, работим по-горната логика, само че този път трием бисквитката и променяме "+" с "-"
- else {
- $('.' + menu).slideToggle(500);
- $.cookie(menu,null);
- $(this).html('-');
- }
- });
- });
Демото, може да видите (и свалите евентуално) оттук .
Пробвано е и работи под всички браузъри.
Възможно е, ако имате друга структура на менютата, кодът по-горе да не ви сработи, затова силно Ви препоръчвам да прочетете за Selectors










