Javascript 成功回调中的JQuery Ajax类型错误
我创建了一个按钮,当点击服务器上的Ajax时,当从服务器返回时,按钮的颜色和文本将发生变化(类似于facebook中的+1添加好友),这是我在Javascript 成功回调中的JQuery Ajax类型错误,javascript,ajax,jquery,Javascript,Ajax,Jquery,我创建了一个按钮,当点击服务器上的Ajax时,当从服务器返回时,按钮的颜色和文本将发生变化(类似于facebook中的+1添加好友),这是我在.js中的代码: $(".blue").on("click", function(){ var firstName = $(this).prev().prev().text(); var lastName = $(this).prev().text(); $(this).text("Add Friend..."); var
.js
中的代码:
$(".blue").on("click", function(){
var firstName = $(this).prev().prev().text();
var lastName = $(this).prev().text();
$(this).text("Add Friend...");
var data={
firstName: firstName,
lastName: lastName
};
$.ajax({
url: '/ajax/friendRequest',
data: data,
dataType: 'json',
success:function(){
alert(123);
$(this).removeClass("glass blue");
$(this).addClass("greenStatic");
$(this).text("Request sent");
}
});
});
一切正常,请求将成功更改数据库,但当它返回到成功回调时,我只看到
警报(123)浏览器上的code>和下面的3行没有运行,我的chrome开发者工具抛出异常的类型错误
我搜索并将$
签名更改为jQuery
,但我仍然在成功回调中遇到同样的问题$(此)
没有引用按钮,将其缓存在成功回调之外,如
$(".blue").on("click", function(){
var btn = $(this);
...
....
success:function(){
...
btn.addClass("greenStatic");
...
}
});
在成功回调中,$(此)
不引用按钮,请将其缓存在成功回调之外,如
$(".blue").on("click", function(){
var btn = $(this);
...
....
success:function(){
...
btn.addClass("greenStatic");
...
}
});
这里这
不是指控件,而是指Ajax请求对象。因此,用控件id替换此
。它应该可以工作
像下面这样的
$("#controlId").removeClass("glass blue");
$("#controlId").addClass("greenStatic");
$("#controlId").text("Request sent");
这里这
不是指控件,而是指Ajax请求对象。因此,用控件id替换此
。它应该可以工作
像下面这样的
$("#controlId").removeClass("glass blue");
$("#controlId").addClass("greenStatic");
$("#controlId").text("Request sent");
@mojibuntu yep,$(此)
参考jQuery对象,使用$(.blue”)
again@vladkras不,可能有多个.blue
元素。你想锁定被点击的人。是的,我就是这么回答的。@Sheikheera很抱歉,你回答的时候我正在打字和喝啤酒,所以我没看到你是对的answer@vladkras,没关系,亲爱的,但不要喝熊,它刺激大脑,杀死细胞,产生精神依赖,希望你不介意。@mojibuntu是的,$(这)
参考jQuery对象,使用$(“.blue”)
again@vladkras不,可能有多个.blue
元素。您想将单击的元素作为目标。是的,这就是我的答案。@Sheikheera很抱歉,在您回答时我正在打字和喝啤酒,所以我看不出您的回答正确answer@vladkras,没关系,亲爱的,但是不要喝熊,它会刺激大脑,也会杀死cells并创建心理依赖,希望您不介意。#controlid
是元素或其他东西的id?您要在其上执行addClass和removeClass操作的元素。明白了吗?是的,应该指向按钮。如果有帮助,请接受答案。我有许多这些项目,不想在需要时更改所有项目单击一个,则我必须使用$(此)
@SheikhHeera是的,没错。我现在刚检查过。#controlid
是元素或其他东西的id?您要在其上执行addClass和removeClass操作的元素。明白了吗?是的,应该指按钮。如果有帮助,请接受答案。我有很多这样的项目,不想在需要时全部更改点击一个,我必须使用$(这个)
@sheikheera是的,没错。我现在刚检查过。