Проблема с Jquery Menu - PullRequest
       6

Проблема с Jquery Menu

1 голос
/ 17 июля 2010

Я только что исправил другой пост, который только что сделал, но это создало еще одну проблему. Я работаю над меню навигации с несколькими уровнями. Вот скрипт, который я использую:

$(document).ready(function(){

// attach the click handler for the menu
$(".left-navigation-holder li a[href='']:has(~ul)").click(toggleMenu);

// Expand menu for the current page:
var level1Selector = "#" + $("body").attr("menul1");
var level2Selector = "#" + $("body").attr("menul2");
var level3Selector = "#" + $("body").attr("menul3");

 $(".left-navigation-holder li a:has(~ul"+ level1Selector +")").click();
 $(".left-navigation-holder li a:has(~ul"+ level2Selector +")").click();
 $(".left-navigation-holder li a:has(~ul"+ level3Selector +")").click();

});

// menu toggle function
function toggleMenu() {
//if ($(this).attr(href='#')) {alert("yes")} else {alert("no")}
$(this).siblings("ul").toggle();
$(this).closest("li").toggleClass("selected");


 return false;
}

Первая строка запускает меню, говоря, что если в одной ссылке в меню есть событие щелчка, и если эта ссылка имеет пустой атрибут href и список внизу, то вызывается toggleMenu, чтобы открыть этот уровень. Причиной проверки значения href является то, что, если оно пустое, открывается меню, если нет, оно отправляет пользователю значение URL и не переключает меню. Это оставляет возможность иметь ссылку на страницу для некоторых меню (и сохранять подуровни), когда другие просто здесь для переключения подменю.

Другая часть скрипта считывает значения атрибутов, которые я установил в теге body на каждой странице (menul1, menul2, menul3), чтобы узнать, на какой странице в меню мы находимся, поэтому меню открывает нужные уровни меню когда страница загружается.

Проблема, с которой я столкнулся, заключается в том, что, поскольку первая строка проверяет значение атрибута href, если загруженная страница была вызвана нажатием на меню, содержащее ссылку и подменю, то оно не открывается при загрузке страницы. потому что HREF имеет значение. Три строки, которые инициировали каждый уровень, теперь работают только тогда, когда значение href пусто.

Не уверен, что делать. Помощь будет оценена. Надеюсь, это было достаточно ясно.

Спасибо!

1 Ответ

0 голосов
/ 17 июля 2010

Похоже, вы хотите сделать две разные вещи одним и тем же способом - вы хотите отключить переключение меню со ссылкой, щелкая по нему, но затем вы пытаетесь открыть его, щелкая по нему.

Вместо того, чтобы вызывать click(), чтобы открыть каждое меню для текущей страницы, не могли бы вы просто позвонить toggleMenu?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...