作者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