문제

jquery draggable뿐만 아니라 mouseenter mouseleave에 대해 설정된 jquery 이벤트를 바인딩했습니다.div는 업데이트 패널에 배치되며 버튼을 클릭하면 정보가 데이터베이스로 전송되고 업데이트 패널이 업데이트됩니다.그러나 패널이 업데이트되면 jquery 이벤트가 더 이상 작동하지 않습니다.왜 이런 일이 발생하는지 아시나요?

도움이 되었습니까?

해결책

비동기 트리거를 페이지에 추가하여 비동기 호출 후 JavaScript/JQuery 함수를 호출 할 수 있습니다.

이 코드를 ASPX 코드의 page_load ()에 배치하십시오.

//This script handles ajax postbacks, by registering the js to run at the end of *AJAX* requests
Page.ClientScript.RegisterStartupScript(typeof(Page), "ajaxTrigger", "Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);", true);
Page.ClientScript.RegisterClientScriptBlock(typeof(Page), "EndRequest", "function EndRequestHandler(sender, args){AsyncDone();}", true);

이 코드 스 니펫은 구체적으로 JavaScript/jQuery 함수 asyncdone ()을 호출합니다.

다른 팁

사용해 보세요

function pageLoad(sender, args)
{ 
   // JQuery code goes here
}

대신에

   $(document).ready(function() {
      // JQuery code goes here
   });

업데이트 패널 내에 있는 버튼을 클릭하면 작동합니다.서버로 이동하여 다시 돌아올 때 jquery를 다시 추가합니다.그러나 이는 eo:AJAXUploader와 같은 컨트롤로 인해 발생하는 비동기 포스트백에서는 작동하지 않지만 이를 Bryans 버전과 결합하면 비동기 포스트백도 처리할 수 있습니다.

이것을보세요 블로그 게시물 Async 업데이트 후 몇 가지 방법을 제공하는 Encosia에서. 나는 이것이 비슷한 내 문제를 해결했다는 것을 알았다.

사용 라이브.

$("div").live("mouseenter", function(){
      // do something
    });

브라이언은 대답을 받았습니다. 나는 일반적으로 일부 이벤트 핸들러, 스키닝 등을 위해 포스트 백 후에 불을 피우고 있습니다.

    /**
    *   .NET Event Handlers
    *   When new code is added on to the client by way of
    *   .NET PostBacks, CSS is typically ignored.  This method
    *   can be used to add CSS to new elements as they are added
    *   asynchronously.  It calls a script at the end of every 
    *   partial post back request.
    *
    *   @example - Core.NETEventHandlers.AsyncPostBack.Init();
    */    
    var NETEventHandlers: {
        /**
        *   Async Post Back Handler
        *   calls a script at the end of every partial post back request
        */          
        AsyncPostBack: {
            EndRequest: {
                Add: function() {
                    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(NETEventHandlers.AsyncPostBack.EndRequest.Handler);
                } // EO Add
                , Handler: function(sender, args) {
                    // Handlers here.
                    alert('Hello World');
                } // EO Handler
            } // EO endRequest
            , Init: function() {
                Sys.Application.add_init(NETEventHandlers.AsyncPostBack.EndRequest.Add);
            }
        } // EO AsyncPostBack
    } // EO dotNETEventHandlers
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top