[英]JQuery Ajax Type error in success callback
我創建了一個按鈕,當點擊服務器中的Ajax執行某些操作時,從按鈕的服務器顏色返回並且其文本將更改(類似於在facebook中添加朋友的+1)這里是我在.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");
}
});
});
每件事都沒問題,請求會成功更改數據庫,但當它回到成功回調時我只看到alert(123);
在瀏覽器和3下面的行不運行和我的chrome開發人員工具拋出typeError
異常我搜索SO並將$
sign更改$
jQuery
但我仍然有同樣的問題
在你的成功回調$(this)
中沒有引用該按鈕,將其緩存在成功回調之外,如
$(".blue").on("click", function(){
var btn = $(this);
...
....
success:function(){
...
btn.addClass("greenStatic");
...
}
});
$(this).removeClass("glass blue");
$(this).addClass("greenStatic");
$(this).text("Request sent");
這里this
並不是指控制,而它指的是Ajax請求的對象。 所以,用控件ID替換this
。 它應該工作。
像下面的東西......
$("#controlId").removeClass("glass blue");
$("#controlId").addClass("greenStatic");
$("#controlId").text("Request sent");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.