2014-10-23 2 views
1

모달을 여는 데 다음 코드를 사용하고 있습니다.모달 문제 닫기

모달이 예상대로 열리고 - 부모 클래스에 open을 추가합니다. 그러나 '닫기'를 클릭하면 닫히지 않습니다. & close은 수업에 추가되지 않습니다.

누군가 설명 할 수 있습니까?

<script type="text/javascript"> 
jQuery(document).ready(function($) { 

    $window = $(window) 

    $(".modal-trigger").click(function(e) { 
     e.preventDefault() 

     var id = $(e.target).attr("href") 

     $(id).addClass("open") 

     $(id).find('.close').click(function(e) { 
      e.preventDefault() 
      $(e.target).parent().removeClass(".open") 
     }); 

    }) 

}); 

</script> 

Close 버튼 HTML : <button class="close icon-close"></button>

+3

[수동] (http://api.jquery.com/removeclass/) :'.removeClass ('open') '을 읽으십시오. –

+0

** 세미콜론 **이 사용 된 점은 필요 없습니다. ? –

+0

'.'을 제거해도이 문제가 해결되지 않습니다. – michaelmcgurk

답변

0

내가 parent() 당신이 수준을 해결하기 위해 제공합니다 생각하지 않습니다. 대신 즉 $(id), 당신이 처음에이 클래스를 추가 요소에서 .open 클래스를 제거하려고 :

$(".modal-trigger").click(function(e) { 
    e.preventDefault(); 

    var id = $(e.target).attr("href"); 
    $(id).addClass("open"); 

    $(id).find('.close').click(function(e) { 
     e.preventDefault(); 
     $(id).removeClass("open"); 
     $(this).off(); 
    }); 
}); 

는 또한 당신은 아마 닫기 버튼의 클릭 이벤트 바인딩을 해제하려면, 그렇지 않으면 여러 번 바인딩합니다.

+0

불행히도, 그것은 작동하지 않습니다. 내 콘솔에도 오류가 없습니다. – michaelmcgurk

+1

'removeClass ("open");'선행 점이 없습니까? – dfsq

+0

완벽하게 작동합니다 - 환상적입니다! * :-) 내에서이 녹색 눈금과 가상 포옹 *을 받아주십시오 옵션 – michaelmcgurk