簡體   English   中英

成功回調中的JQuery Ajax Type錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM