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")呢?请高手指点 展开
贴上代码先
我有一个自定义函数是这样的:
$.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(财富值+成长值)
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询