我想根據jquery ajax請求的返回代碼切換和刷新div的內容。在jquery ajax處理程序中獲取此引用
我相信我不能將「item」與ajax請求處理程序正確綁定。我如何在「成功」處理程序中獲得對「this」的引用?
我認爲它是因爲成功句柄被執行異步,並且「item」變量處於殭屍狀態。
- 我有兩個div開始添加就可以了
- 當我點擊添加任何股利,它激發了ajax REQ,服務器處理並返回成功/錯誤
- 成功後,我切換添加刪除的DIV,如果我上刪除
- 點擊這兩個div的點擊幾下後
- 同樣切換髮生時,我看到我的AJAX請求的,要麼增加發射3 -4次,單次點擊/刪除
我認爲我將div加入「item」的方式可能是問題所在。我不知道什麼是錯的。我正在考慮如何爲此寫一個jsfiddle。
我可以寫一個jsFiddle並重現該問題。上面提到的用例是我期望的行爲。的jsfiddle
http://jsfiddle.net/nEMvD/14/
JS:
function handleAdd() {
$(".add").click(function(e) {
var item = $(this).parents(".item")
$.ajax({
url: '/echo/html',
success: function(data) {
item.find(".add").remove()
item.append("<div class='remove'>x</div>")
item.hide().show();
handleRemove()
}
})
});
}
function handleRemove() {
$(".remove").click(function(e) {
var item = $(this).parents(".item")
$.ajax({
url: '/echo/html',
success: function(data) {
item.find(".remove").remove()
item.append("<div class='add'>+</div>")
item.hide().show();
handleAdd()
}
})
});
}
$(function() {
handleAdd()
handleRemove()
})
編輯:
我想我加入背景下解決了這個問題:在Ajax請求這一點,然後在處理程序使用此。但我會等待來自社區的其他更好的選擇。
您_can_參考您的項目變量的成功回調裏面 - 這是相當正常的。你爲什麼說你不能那樣做? – nnnnnn
檢查瀏覽器控制檯,如果你看到錯誤,你會知道什麼是錯的。你確實有JS錯誤。將你的代碼複製到jsfiddle.net中,然後你可以看到它。 –
我仍然看到在您的代碼 –