سؤال

ولقد binded الأحداث مسج المحددة لmouseleave mouseenter، فضلا عن مسج القابل للسحب. يتم وضع عناصر div في لجنة تحديث ويتم إرسال المعلومات عندما يتم النقر على زر لقاعدة البيانات ويتم تحديثها لوحة التحديث. ولكن عندما يتم تحديث لوحة الأحداث مسج لم تعد تعمل. أي فكرة لماذا هذا هو الحال؟

هل كانت مفيدة؟

المحلول

ويمكنك إضافة الزناد غير متزامن إلى صفحتك استدعاء دالة جافا سكريبت / مسج بعد أي دعوة المتزامن.

ومكان هذا الرمز في Page_Load الخاص بك () من التعليمات البرمجية ASPX وراء:

//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);

وهذه التعليمات البرمجية المتكررة سيدعو على وجه التحديد وظيفة AsyncDone جافا سكريبت / مسج ()؛

نصائح أخرى

وحاول استخدام

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

وبدلا من

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

وهذا سوف يعمل عند النقر على الزر الذي هو داخل لجنة التحديث. فإنه يذهب إلى الخادم وسوف إضافته مسج عندما يعود. ومع ذلك، هذا لا يعمل مع إعادات النشر غير متزامن الناجمة عن عنصر تحكم مثل EO: AJAXUploader لكن الجمع بين هذا مع نسخة برنس يمكنك التعامل مع إعادات النشر غير متزامن وكذلك

وإلقاء نظرة على هذا <وأ href = "http://encosia.com/2009/03/25/document-ready-and-pageload-are-not-the-same/" يختلط = "نوفولو noreferrer" > بلوق وظيفة من 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