2012-09-28 6 views
0

나는 창을 클릭하면 팝업 div를 닫는 일반적인 시나리오가 있습니다. 내가 사용하는 코드는JQuery에서 window.click 이벤트 문제

$(window).load(function(){ 
    $('.popupstyle').live("click", function(e){ 
     return false; 
    }); 
    }); 
    $(document).ready(function(){ 
    $(window).click(function(){ 
    $('.popupstyle').hide(); 
    }); 
    }); 

하지만 문제의 LinkButton처럼 컨트롤에는 포스트 백 이벤트가 다음 팝업 DIV 작업을하지 않습니다 있다는 것입니다. 팝업 div의 클릭 이벤트에서 false를 반환하면 문제가 발생합니다. popuop div의 모든 것을 융합합니다. 한 가지를 고정해야 할 일을 이해하지 못해 다른 것을 방해합니다. 또한 실시간 이벤트는 첫 번째 클릭에서 작동하지 않습니다. 어떤 제안

+0

,이 http://stackoverflow.com/questions/757232/jquery-ui-dialog-with-asp-net-button-postback – CjCoax

답변

0

이의 원인은 자식 요소에서 이벤트가 부모 요소 ..에 거품 이벤트 버블 링입니다

이를 방지하는 한 가지 방법은 발생할 때 e.stopPropagation()를 사용하는 것입니다 대상 요소

CHECK FIDDLE

+0

봐 주셔서 감사합니다 해결 됐어! – user1575229

0

@sushanth 맞다. 이벤트 버블 링 때문에 중요한 핵심 개념입니다. 또한 2 명의 청취자 ($('.popupstyle').live("click", $(window).click)와 상황에서 당신을 여행 할 수있는 동안, 우리는 우리의 장점으로 버블 링을 사용하고 단일 청취자 ($(window).click)와 동일한 작업을 수행 할 수 있습니다. 일반적인 문제입니다

$(window).click(function(e){ 
     if(! $(e.target).hasClass('popupstyle')){ $('.popupstyle').hide(); } 
    }); 

DEMO

+0

감사합니다! 감사합니다! – user1575229