Javascript 重写jquery.load()函数-句柄回调
我重载了jQuery的.load()函数以满足我的跨域需求Javascript 重写jquery.load()函数-句柄回调,javascript,jquery,overriding,Javascript,Jquery,Overriding,我重载了jQuery的.load()函数以满足我的跨域需求 (function ($) { var _load = $.fn.load; $.fn.load = function(url, params, callback) { if (url.match('^http')) { $(this).load("read_page.php?p="+url); return this; }
(function ($) {
var _load = $.fn.load;
$.fn.load = function(url, params, callback) {
if (url.match('^http')) {
$(this).load("read_page.php?p="+url);
return this;
}
else{
return _load.apply(this, arguments);
}
}
})(jQuery);
“read_page.php”调用php curl从跨域获取页面
调用上述重写函数的代码部分为:
$(trg).load(user_folder+shw+qs, function(){
showErr("Updation Successfull", trg);
$(".divErr").css("border-color","#4F8A10");
$(".divErr").css("background","url(images/img_suc.png) no-repeat 10px 50%, left;");
$(".divErr").css("background-color","#DFF2BF");
}).html(vLoading);
.html(vLoading)部分运行良好,因为我的代码返回this的值
函数(){…}部分不起作用,因为我的代码没有部分可处理回调
需要帮助来处理我的自定义覆盖函数中的回调。请尝试以下版本:
(function ($) {
var _load = $.fn.load;
$.fn.load = function(url, params, callback) {
if ( url.match('^http') ) {
var params = params || {},
callback = callback || function () {};
_load.call(this, "read_page.php?p="+url, params, callback );
return this;
}
else {
return _load.apply(this, arguments);
}
}
})(jQuery);
如果(callback!=未定义)callback(),请尝试此
代码>在这一行之后$(this).load(“read_page.php?p=“+url”)代码>感谢您的回复。此负载将在哪个选择器上工作?需要将$(this)或this放在代码加载的某个地方(“read_page.php?p…你说得对。我编辑了这篇文章,并在加载函数中添加了一个“call”语句。