2010-11-02 16 views
6

हम एक तृतीय पक्ष नियंत्रण सूट का उपयोग करते हैं जिसमें JQuery वैश्विक ajaxError ईवेंट है जिसे हम कस्टमाइज़ करना चाहते हैं। हम इस जेएस फ़ाइल को अपडेट नहीं करना चाहते हैं, लेकिन किसी भी तरह से इसे ओवरराइड करना चाहते हैं ताकि JQuery इस ईवेंट को निष्पादित न करे।तृतीय पक्ष को ओवरराइड करना JS

क्या यह संभव है?

संपादित करें: तृतीय पक्ष कोड

ajaxError: function (element, eventName, xhr, status) { 
     var prevented = this.trigger(element, eventName, 
      { 
       XMLHttpRequest: xhr, 
       textStatus: status 
      }); 

     if (!prevented) { 
      if (status == 'error' && xhr.status != '0') 
       alert('Error! The requested URL returned ' + xhr.status + ' - ' + xhr.statusText); 
      if (status == 'timeout') 
       alert('Error! Server timeout.'); 
     } 
    } 

मैं लाइन से अगर हालत

+0

यह कैसे बाध्य है? क्या आप वह कोड दे सकते हैं जिसे आप रद्द करना चाहते हैं? – lonesomeday

+0

@lonesomeday - कृपया – DotnetDude

उत्तर

-1
public class MyClass: MC 

{ 
    protected override void OnError(..) 
    { 
    //handle error, send error to where ever 
    } 
} 
+4

गलत प्रोग्रामिंग भाषा संपादित करें देखें। – Quentin

1

आप पूरी विधि के ऊपर लिख नहीं बल्कि केवल एक ही बयान कर सकता है शुरू करने को रद्द कर वान।

संपादित: प्रोटोटाइप पुस्तकालय आप उपयोग कर रहे उपयोग कर बनाया गया है मुझे लगता है कि। बस ध्यान दिया कि आप jQuery का उपयोग कर रहे हैं। इसलिए आप LibName.prototype के बजाय jQuery.fn का उपयोग कर सकते हैं। अधिलेखन यह करने के लिए समान दिखेगा:

jQuery.fn.ajaxError = function(element, eventName, xhr, status) { 
    var prevented = this.trigger(element, eventName, 
    { 
    XMLHttpRequest: xhr, 
    textStatus: status 
    }); 
} 
+1

मैं जेएस में पूरी विधि को कैसे ओवरराइड कर सकता हूं और मैं ट्रिगर कॉल को कैसे संभालेगा? – DotnetDude

+0

मेरी समझ यह है कि एफएन सिंटैक्स का उपयोग jquery (प्लगइन बनाने) में कार्यक्षमता जोड़ने के लिए किया जाता है। क्या यह jquery विधियों को ओवरराइड करने के लिए भी काम करता है? – DotnetDude

+0

अगर 'AJAXError' को 'fn' के संदर्भ में परिभाषित किया गया है, तो प्लगइन के रूप में कहें, इसे चाहिए। क्या तुमने कोशिश की? – pex

0

आप निम्नलिखित के रूप में किसी भी संपत्ति को ओवरराइड कर सकते हैं:

var thirdParty = { 
     override: function() {     
      alert('this function should have been overridden'); 
     } 
    }; 

    var thirdPartyOriginal = thirdParty.override; 

    thirdParty.override = function() { 
     alert('this function has been overridden'); 
    }; 

    thirdParty.override(); 

    thirdParty.override = thirdPartyOriginal; 

उदाहरण मूल की अवधारण और फिर नए कोड के निष्पादन के बाद दिखाई देते हैं। मैं इसे वापस मूल स्थिति में वापस कर देता हूं।

संबंधित मुद्दे