2012-12-17 6 views
1

요소를 클릭 할 때 나타나는 HTML에 "드롭 다운 메뉴"를 만들었습니다. 당신이 원인이됩니다 li에 "선택"클래스를 적용 할 요소를 클릭하면 하위 메뉴가 나타납니다합니다 :HTML "드롭 다운 메뉴"- 클릭시 토글

jsFiddle Example

내가 지금까지 코드가 그 표시됩니다 클릭 할 때/메뉴를 숨기기 메뉴 항목. 다른 메뉴를 선택하면 그것에서 선택한 클래스를 제거하고 클릭 된 일에 전환됩니다

$("#menu").on("click", "li.dropdown", function(event) { 
    event.preventDefault(); 
    event.stopPropagation(); 

    $(this).siblings(".dropdown").removeClass("selected"); 
    $(this).toggleClass("selected"); 
}); 

문제는 그 나는 내가 내 아이를 클릭하면 지금이 권리를 가지고 방법 하위 메뉴는 메뉴를 토글하고 닫습니다.

또한 문서의 다른 곳을 클릭 할 때 메뉴를 숨기려고합니다. 이를 통해 수행 할 수 있습니다

$(document).on("click", function(event) { 
    $("#menu .dropdown").removeClass("selected"); 
}); 

1) 나는 드롭 다운 부분을 클릭하면 메뉴를 숨기지 않고이 토글 기능을 사용하려면 어떻게합니까?

2) 메뉴/하위 메뉴 이외의 다른 곳에서 문서를 클릭하면 메뉴를 숨기는 방법은 무엇입니까?

+0

이미 # 2 자신을 대답하지 않았다 : # 1 수행하려면? – j08691

+0

사용자는 클릭하여 메뉴를 닫을 수 있습니다. –

+0

@Diodeus, 메뉴를 자동 닫기 전에 짧은 시간 제한을 사용하는 것이 좋습니다. 여러 개의 하위 메뉴가있는 경우 우연히 마우스를 떼어 내면 모든 것이 즉시 닫히게됩니다. – nnnnnn

답변

3

수락 가능한 방식으로 답변 # 2가있는 것 같습니다.

$('.submenu').click(function(e) { 
    e.stopPropagation(); 
});​ 

jsFiddle example

+0

Meeehhhh는 내 것만 큼 우아하지 않습니다 .-P – Neal

+0

이것은 내가 원하는 것을합니다. 나는 문서의 나머지 부분에 대해 동일한 작업을 수행 한 이래로 이미 90 % 가량 이었지만 어떤 이유로 든 하위 메뉴에 대해 동일한 생각 프로세스를 적용하지 않았습니다. – Dismissile