2012-12-05 2 views
0

요청을 보낼 때 asp.net 아약스 BeginrequestHandler 및 EndRequestHandler 이벤트에서 $ (document) .click 이벤트를 바인딩하려고합니다. click 이벤트가 호출되도록 바인딩 해제를 호출해야합니다. 작동하지. endRequestHandler가 호출되면 바인드를 다시 실행해야합니다.jquery (document) .click 이벤트를 바인딩하려고합니다.

function BeginRequestHandler(sender, args) 
    { 
     $(document).unbind("click"); 
     $("#divUtility > :first-child").css({ 
     'position':'absolute', 
     'left':'0px', 
     'right':'0px', 
     'width':'250px', 
     'height':'70px', 
     'background-color':'#EfEfEF' 
     }); 
    } 


    function EndRequestHandler(sender, args) 
    { 
     $(document).bind("click",function(e){ 
     if($(e.target).hasClass("UtilityClass")) 
     { 
     } 
     else 
     { 
     $('.popupstyle').hide(); 
     } 
     }); 
    } 

나머지는 정상적으로 작동합니다. 그러나 바인딩 해제가 작동하지 않습니다.

+0

와 이벤트 핸들러를 제거합니다. 거기에있는 CSS의 코드 블록이 실행됩니다. – user1575229

답변

0

할 첫 번째 작업은 콜백이 정말이라고되어 ​​있는지 확인하기 위해 함수

function BeginRequestHandler(sender, args) 

일부

console.debug("your message") 

을 넣어하는 것입니다.

두 번째로 클릭 이벤트 (모든 경우는 제외)에서 모든 이벤트 핸들러가 제거되지 않도록 클릭시 네임 스페이스를 사용해야합니다.

$(document).bind("click.myNameSpace", function(mouseEvent) { 
    // your code here 
}); 

함께 이벤트 핸들러를 추가하고이 호출 예

$(document).unbind("click.myNameSpace"); 
+0

css의 코드 블록은 BeginRequestHandler에서 실행됩니다. – user1575229

+0

예. – user1575229

+0

EndRequestHandler (보낸 사람, args)의 코드를 주석 처리하고 이벤트 처리기가 항상 바인딩되어 있는지 확인하려고 했습니까 – MatRt

관련 문제