作者nightspirit (鞭策自己社清流夜灵)
看板Ajax
标题[问题] jquery $.fn 绑function一问
时间Tue Oct 18 02:11:24 2011
我有一个客制的ajax script,
目标是希望能把.ajax里的success用特定的function来取代
请问各位前辈有办法这样写吗?
$.fn.myajax = function (success_callback) {
try {
$.ajax({
type: "POST",
contentType: "application/json",
url: "/Webservices/Template/Ver1Tool.asmx/GetClientPages",
dataType: "json",
success: success_callback
});
} catch (e) { }
return this;
}
$(selector).myajax(function(data){
// callback action
});
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 66.122.205.38
1F:推 senser:你的ajax并没有用到selector 所以并不需要加入prototype 10/18 17:20
2F:→ senser:你可以直接extend jQuery object就可以瞜 10/18 17:22
应该说我的selector在吃到回传的data之後会做一些更新动作
不过我已经找到解法了
$.fn.myajax = function (success_callback) {
var control = this; //确定待会success function是在原本呼叫物件的scope
try {
$.ajax({
type: "POST",
contentType: "application/json",
url: "/Webservices/Template/Ver1Tool.asmx/GetClientPages",
dataType: "json",
success: function(data){
success_callback.call(control,data);
}
});
} catch (e) { }
return this;
}
$('.update_area').myajax(function(data){
$(this).html(data);
});
嗯... 这样一来大概就可以做到我想要做的事这样 :P
※ 编辑: nightspirit 来自: 66.122.205.38 (10/19 01:29)
3F:推 senser:那这样的确OK 也比较方便 10/19 12:16
4F:→ senser:而那个context里的this已经是jQuery object了 不用$也ok喔 10/19 12:18