2012-12-14 3 views
-2

div를 클릭 할 때 div를 숨기는 데 어려움이 있습니다. 몸.div를 숨겨서 페이지 본문을 클릭하면

jQuery(document).ready(function($) { 
$('.list_container').hide().before('<div class="listbtn"> </div>'); 
$('.listbtn').click(function() { 
    $('.list_container').animate({width: 'toggle'}); 
    return false; 
}); 
}); 

본문을 클릭 할 때 .list_container를 숨기려고합니다. 가급적 숨겨진 상태로 전환하는 것이 좋습니다.

+1

문제가 무엇인가요? 오류가 있습니까? 대신 무엇을하고 있습니까? – thescientist

+1

문서의 click 이벤트 처리기는 어디에 있습니까? –

답변

1

document에 이벤트를 바인드하고 이벤트를 전달하고 컨테이너 자체의 클릭 전파를 막아야합니다.

$(document).on("click", function() { 
    $(".list_container").fadeOut(); 
}); 

$(document).on("click", ".list_container", function(event) { 
    event.stopPropagation(); 
}); 

당신은 사업부와 부모에게 전파 또는 이벤트의 버블 링을 중지 사업부에 온 클릭을 숨 깁니다 문서에 온 클릭을 적용해야이 Fiddle

+1

'delegate()'는 jQuery 1.7 이상에서'on()'메소드를 사용하여 더 이상 사용되지 않습니다. – jmoerdyk

+0

@jmoerdyk 나는 그 점을 알지 못했다. 팁 주셔서 고마워. – rdiazv

0

를 살펴 보자 :

$(document).click(function() { 
    $('.list_container').hide(); 
}); 

$('.list_container').click(function (e) { 
    e.stopPropagation(); 
}); 
관련 문제