我们使用第三方控件套件,它具有我们想要自定义的JQuery全局ajaxError
事件。我们不想更新这个JS文件,但希望以某种方式覆盖它,以便JQuery不执行此事件。
这可能吗?
编辑:第三方代码
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.');
}
}
我想从if条件
开始使该行无效答案 0 :(得分:1)
您可以覆盖整个方法,但不能只覆盖一个语句。
修改强>:
我正在使用的库是使用原型构建的。注意到你正在使用jQuery。因此,您可以使用jQuery.fn而不是LibName.prototype。覆盖它看起来类似于:
jQuery.fn.ajaxError = function(element, eventName, xhr, status) {
var prevented = this.trigger(element, eventName,
{
XMLHttpRequest: xhr,
textStatus: status
});
}
答案 1 :(得分: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;
该示例显示保留原始文件,然后执行新代码。我把它恢复到原始状态。
答案 2 :(得分:-1)
public class MyClass: MC
{
protected override void OnError(..)
{
//handle error, send error to where ever
}
}