2009-07-30 13 views
5

काम करने से jquery को रोकता है मैंने माउसेंटर माउसलेव के साथ-साथ jquery draggable के लिए jquery ईवेंट सेट किए हैं। Divs को अद्यतन पैनल में रखा जाता है और जब कोई बटन क्लिक किया जाता है तो जानकारी डेटाबेस पर भेजी जाती है और अद्यतन पैनल अपडेट किया जाता है। हालांकि जब पैनल को अद्यतन किया जाता है तो jquery घटनाएं अब काम नहीं करती हैं। कोई विचार यह क्यों होगा कि यह मामला क्यों होगा?एएसपी.नेट अपडेट पैनल

उत्तर

7

पर जा सकते हैं आप जावास्क्रिप्ट को कॉल करने के लिए अपने पृष्ठ पर एक असीमित ट्रिगर जोड़ सकते हैं/किसी भी async कॉल के बाद 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); 

यह कोड स्निपेट विशेष रूप से जावास्क्रिप्ट/jQuery समारोह AsyncDone फोन करेगा();

+0

मैंने कोशिश की, लेकिन मेरा "AsyncDone()" फ़ंक्शन नहीं कहा गया था। – ErnieStings

+0

क्या आपने यह देखने के लिए अलर्ट डालने का प्रयास किया था कि इसे कहलाया जा रहा है या नहीं? AsyncDone() फ़ंक्शन के अंदर प्रत्येक async पृष्ठ लोड के बाद आपको अपने jquery ईवेंट को फिर से जोड़ना होगा। –

1

live का उपयोग करें।

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

, सबमिट करें –

+0

इस प्रश्न को ढूंढने वाले लोगों के लिए, अब यह मामला नहीं है, jQuery 1.4 और नए संस्करण बबल के सभी कार्यक्रमों का समर्थन करते हैं। https://api.jquery.com/live/ – nyuszika7h

3

function pageLoad(sender, args) 
{ 
    // JQuery code goes here 
} 
बजाय

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

यह जब एक बटन है कि एक अद्यतन पैनल के भीतर है क्लिक किया जाता है काम करेंगे उपयोग करने का प्रयास; यह सर्वर पर जाता है और जब यह वापस आता है तो jquery को फिर से जोड़ देगा। हालांकि, यह ईओ: AJAXUploader जैसे नियंत्रण के कारण असिंक्रोनस पोस्टबैक के साथ काम नहीं करता है लेकिन ब्रायन संस्करण के साथ इसे संयोजित कर सकता है, आप एसिंक्रोनस पोस्टबैक को भी

3

एन्कोसिया से यह blog post देखें जो आपको एसिंक अपडेट के बाद पुन: बाध्य करने के कुछ तरीके प्रदान करता है। मैंने पाया कि यह मेरी समस्या का हल हुआ जो समान था।

0

ब्रायन का जवाब मिला। मैं आम तौर पर संलग्न है कि कुछ ईवेंट हैंडलर्स, कि आग skinning और इस तरह के, के लिए के साथ इस के साथ Postbacks के बाद: वर्तमान में समर्थित नहीं: कलंक, ध्यान, mouseenter, mouseleave, परिवर्तन

/** 
    * .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 
"लाइव" के लिए jQuery डॉक्स से
संबंधित मुद्दे