2013-08-12 2 views
0

기능 이벤트.JQuery와, 나는 현재 메뉴가 다음 밀어하면 메뉴가 표시됩니다 아주 간단한 JQuery와 기능이

$(".menu").on("click", function(event){ 
    $(".menulist").css("display","block"); 
    alert(event); 
}) 

나는 메뉴 버튼을 경우 다시 아무것도 표시되지 싶습니다 다시 클릭하거나 메뉴를 클릭하면

을 나는 다음과 같이 오프 기능을 시도하지만 어쨌든 작동하지 않을 실현 :.? 난을

$(".menu").off("click", function(){ 
    $(".menulist").css("display","none");  
}) 

어떤 조언을이 작업을 수행하는 방법에 관해서 F 이것이

편집 aswell 모바일 웹 사이트에 대한 것입니다 도움이 : 나는 항목이 이미 보여주는 경우 알이 이벤트를 사용할 수있을 거라고 생각대로 이벤트는 첫 번째 함수입니다. 그 중 하나 또는 다른 비록 내가 더 나은 것입니다 ("클릭"function()에 대한 표시의 CSS 값이 블록 또는 아무도 같지 않다는 것을 확인하고 거기에서 CSS를 변경?이 클릭하여 해결할 것이라고 메뉴 버튼이 아닌 메뉴 오프

+1

직접 css를 조작하는 대신'.hide()'와'.show()'를 사용해보십시오. – kingdamian42

+1

jquery .toggle() 메서드는 숨겨진 요소를 표시하고 표시되는 경우 숨 깁니다. 동일한 작업을 수행하지만 클래스를 추가하거나 제거하는 toggleClass ("class")와 같은 것을 사용할 수도 있습니다. – cernunnos

+0

먼저 모든 사람의 의견을 보내 주셔서 감사합니다. 제안은 작동하지만 메뉴를 클릭하면 작동하지 않습니다 (분명히). 이 작업을 수행하는 방법에 대한 제안 사항은 무엇입니까? –

답변

3

사용 $(".menu").on("click", function(){ $('.menulist').toggle() }); 메뉴 목록의 가시성을 전환합니다.

업데이트

당신이 메뉴 요소를 off 클릭 단지 body 태그에 클릭 이벤트를 캐치 해가 열려 있으면 메뉴를 닫을 때 메뉴를 닫으려면 :

전체 조각이 보일 것이다 이 같은 :

$('.menu').on('click', function(){ 
    $('.menulist').toggle(); 
}); 

$('body').on('click', function(e){ 
    if(!$(e.target).hasClass('.menu') && $('.menulist').is(':visible')) { 
     $('.menulist').hide(); 
    } 
}); 
+0

토글을 클릭하면 메뉴를 클릭 한 다음 사용하는 방법을 알려줍니다.css ("display", "none"); –

+0

내가 사용했던 것이 아니라 당신이 내가 필요로하는 것에 가장 가까운 것을 얻었습니다. 그렇게 감사드립니다. –

1

jQuery를의 toggle 방법을 사용해보십시오 :

$(".menu").on("click", function() { 
    $(".menulist").toggle(); 
}); 
+4

이 형태의'toggle()'은 버전 1.9부터 jQuery에서 삭제되었습니다. –

+0

Frederic에게 감사드립니다. 제 코드를 수정했습니다. –

0
$(".menu").on("click", function(event){ 
    if($(".menulist:visible")) 
    { 
    $(".menulist").css("display","none"); 
    }else{ 
    $(".menulist").css("display","block"); 
    } 
}); 
0

단순히

$(".menu").on("click", function(event){ 
    $(".menulist").toggle(); 
}); 
3
$(".menu").on("click", function(event){ 
    $(".menulist").toggle(); 
}) 
입니다3210
+0

그러나이 기능은 메뉴를 클릭하면 작동하지 않습니다. 어떤 아이디어? –

+0

당신이'.menu'를 클릭하지 않을 때 coures는 작동하지 않습니다 (단지 거기에 할당되어 있습니다). 다른 장소에서 작동해야하는 경우 클릭 핸들러를 엘레멘트에도 추가 할 수 있습니다. – DrColossos

+0

의견을 볼 때 http://inspiretrends.com/drop-down-menu-tutorials/와 같은 것을 원하십니까? 마우스 오버/아웃 효과가 있습니까? – DrColossos

0
$(".menu").on("click", function(){ 
    var $menulist = $(".menulist"); 
    $menulist.toggle($menuList.is(":visible")); 
} 
0

toggle()으로 기능이 지원되지 않습니다 :

$(".menu").on("click", function(event){ 
    if($(".menulist").css("display")!="none") 
    { 
     $(".menulist").css("display","none"); 
    } 
    else{ 
     $(".menulist").css("display","block"); 
    } 
}); 
관련 문제