jQuery自定义函数的回调函数中$(this)指向问题

各位大大,小弟刚接触jQuery不久,自定义函数遇到了难题,希望大家指点以下贴上代码先我有一个自定义函数是这样的:$.fn.extend({ajaxBtn:functio... 各位大大,小弟刚接触jQuery不久,自定义函数遇到了难题,希望大家指点以下
贴上代码先
我有一个自定义函数是这样的:
$.fn.extend({
ajaxBtn: function() {
$callback = typeof arguments[0] == "function" ? arguments[0] : undefined;
$(this).click(function() {
if($(this).attr("type") == "submit") {
$form = $(this).parents("form");
$type = "post";
$url = $form.attr("action");
$data = $form.serialize();
} else {
$type = "get";
$url = $(this).attr("href");
$data = "";
}
$_this = $(this);
$.ajax({
type: $type,
url: $url,
data: $data,
success: function($data) {
if($data.result == 1) {
$.handleMsg("操作成功", $data.msg);
} else if($data.result == 0) {
$.handleMsg("操作失败", $data.msg);
}
$callback ? $callback() : "";
},
error: function() {$.handleMsg("", "请求失败!")}
});
return false;
});
}
});

我在页面中调用是这样的:
$(document).ready(function() {
$(".ajaxBtn").ajaxBtn(function() {$(this).hide(500);});
});

问题是这样的:页面调用这个函数时自定义函数加了一个回调函数,
这个回调函数中用了$(this),回调函数在AJAX成功后调用,但是这个$(this)的指向并不是$(".ajaxBtn")
有高手能解释下怎么写能取到$(".ajaxBtn")呢?请高手指点
展开
 我来答
  • 你的回答被采纳后将获得:
  • 系统奖励15(财富值+成长值)+难题奖励10(财富值+成长值)+提问者悬赏10(财富值+成长值)
abcwt112
2014-10-28 · TA获得超过281个赞
知道小有建树答主
回答量:224
采纳率:0%
帮助的人:186万
展开全部
$(document).ready(function() {
var btn = $(".ajaxBtn");
btn.ajaxBtn(function() {btn.hide(500);});
});
追问
有什么方法可以像原生函数那样直接使用链式结构呢?使用$(this)
追答
等大神吧
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式