2014-11-03 2 views
2

아래와 같이 2 개의 스크립트를 사용하고 있습니다.jquery 토글 클래스 및 마우스 업 버튼 문제

"bookaviewing"클래스로 버튼을 클릭하면 첫 번째 스크립트 열기가 div로 표시됩니다.

"예약 양식"div의 바깥 쪽에서 누군가가 클릭을하면 "예약 양식"클래스가있는 div가 필요합니다. 두 번째 스크립트는이를 수행합니다.

내 문제는 버튼을 두 번 이상 클릭하면 ("예약 양식"div 외부에 있기 때문에) "예약 양식"을 닫지 않을 것입니다. 단지 열리기 만합니다.

아래 2 개의 스크립트를 결합해야합니다. & 도움이 필요합니다.

스크립트 1

<script type="text/javascript"> 
// set click/toggle event on bookaviewing button to show form 
$('.bookaviewing').click(function() { 
    $('.booking-form').slideToggle(400).toggleClass('opened'); 
    return false; 
}); 
</script> 

스크립트 2

<script type="text/javascript"> 
// close booking-form when click outside of div 
$(document).mouseup(function (e){ 
    var bookingform = $(".booking-form"); 
    if (!bookingform.is(e.target) && bookingform.has(e.target).length === 0){ 
     bookingform.hide(); 
    } 
}); 
</script> 
+0

ur script1에만 문제가있는 경우 script1은 게시하지 않음 –

+1

은 jsfiddle ... –

+0

나는 둘을 게시해야합니다. 버튼은 div를 닫지 않으므로 둘 다 개별적으로 작동하지만 함께 작동하지는 않습니다. – user3544484

답변

3

당신은 같은에서 폐쇄/개방 토글을 방지하기 위해 예약 양식 토글 버튼을 제외해야 시간 :

(210)

// set click/toggle event on bookaviewing button to show form 
$('.bookaviewing').click(function() { 
    $('.booking-form').slideToggle(400).toggleClass('opened'); 
    return false; 
}); 
$(document).on('mouseup', function (e){ 
    var bookingform = $(".booking-form"); 
    if (!bookingform.is(e.target) 
     && bookingform.has(e.target).length === 0 
     && !$(e.target).is('.bookaviewing')) 
    { 
     bookingform.slideUp(); 
    } 
}); 

참고 : hide 조금 부조화였다으로 내가뿐만 아니라 slideUphide()에서, 외부 클릭을 변경했습니다.

+0

진실한 파랑 Aussie :) +1 –