2010-07-17 5 views
1

방금 ​​만든 다른 게시물에 수정 사항이 있습니다. 그러나이 문제는 nother 문제를 일으켰습니다. 여러 수준의 탐색 메뉴 작업 중입니다. 여기에 내가 사용하고있는 스크립트입니다Jquery Menu problem

$(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 값으로 보내고 메뉴를 전환하지 않기 때문입니다. 따라서 다른 메뉴가 하위 메뉴를 토글하는 경우 일부 메뉴 (및 하위 수준 유지)에 대한 페이지 링크가있는 옵션이 제공됩니다.

스크립트의 다른 부분은 각 페이지 (menul1, menul2, menul3)의 body 태그에 설정 한 속성 값을 읽어 메뉴의 어떤 페이지에 있는지 알기 때문에 메뉴가 올바른 메뉴를 엽니 다. 페이지로드시 수준.

내가 가진 문제는 첫 번째 줄은 href 속성 값을 확인하기 때문에로드 된 페이지가 링크 및 하위 메뉴가있는 메뉴를 클릭하여 호출 된 경우 해당 페이지가로드 될 때 열리지 않습니다. 페이지는 href에 값이 있기 때문에 각 레벨을 시작한 세 줄은 href 값이 비어있을 때만 작동합니다.

무엇을 해야할지 잘 모릅니다. 도움을 주시면 감사하겠습니다. 나는 이것이 충분히 명확했으면 좋겠다.

감사합니다.

답변

0

같은 방법으로 두 가지 다른 작업을 수행하려는 것 같습니다. 링크가있는 메뉴를 클릭하여 전환 할 수 없도록 설정하려고하지만 링크를 클릭하여 열어보십시오.

click()을 호출하여 현재 페이지의 각 메뉴를 열지 말고 대신 toggleMenu으로 전화 할 수만 있습니까?

+0

나는 그것을 시도했다 : $ (". 왼쪽 탐색 항아리가 : (~ ul"+ level1Selector + ")"). toggleMenu(); 작동하지 않았습니다. 오류가 발생했습니다. – Ben

+0

괜찮 았어. 다른 이벤트를 시작하는 행을 추가했습니다. $ ("left-navigation-holder li a : has (~ ul)") load (toggleMenu); 다음 본문의 특성을 확인할 때 load() 함수를 사용했습니다. $ ("left-navigation-holder li a : has (~ ul"+ menuSelector + ")") load(); – Ben