我有一個按鈕來刷新使用AJAX的內容,調用refreshFeed()。我仍然需要操縱由AJAX加載的內容,所以我將.live()添加到加載了AJAX的內容中的某些鏈接以啓動其他AJAX調用,比方說「評論」。 「評論」按鈕從隱藏的輸入字段收集一些值並將它們發佈到服務器。jQuery - 在AJAX調用之後,舊的元素仍然存在於DOM中?如何刪除?
它工作正常,如果我不點擊刷新。但是,我發現經過多次刷新後,當點擊具有.live('click',function(){})bond(「comment」按鈕)的鏈接時,它會向服務器發送多個POST請求。我猜這是因爲舊的DOM元素仍然存在,所以我嘗試使用refreshFeed()中的.remove(),.empty()來刪除所有元素。但問題依然存在。
下面是代碼:
$.ajaxSetup({
cache: false
});
$(".submit-reply").live('click', function() {
var mIDValue = $(this).parent().find("input.re-fb-msg-id").val();
var accessValue = $(this).parent().find("input.re-fb-token").val();
var commentValue = $(this).parent().find(".comment").val();
var postReplyUrl = "fconfirm.jsp";
var ajax_reply_load = "<img src='img/scanningsmall.gif' alt='loading...' />";
$(this).parent().parent().find(".result-note").show();
$(this).parent().parent().find(".result-note .out-container").html(ajax_reply_load).fadeIn(300).load(postReplyUrl, {
mID: mIDValue,
access: accessValue,
comment: commentValue,
});
$(this).parent().hide();
});
function refreshFeed() {
$.ajaxSetup({
cache: false
});
$("#feeds div").remove();
$(".submit-reply").remove();
var loadingFeeds = "<div class='loading-feed'><img src='img/scanningsmall.gif' alt='loading...' /><p>Loading...</p></div>"
var feedURL = "pbsc.htm"
var feedParameter = "clientId=<%=clientId%>&getPostTweets=1&rescan=1";
$("#feeds").html(loadingFeeds).load(feedURL, feedParameter);
}
我是新來的jQuery和真的不知道問題出在哪裏。請幫幫我!謝謝!
任何HTML去與此? – kasdega
謝謝。但HTML過於複雜,無法發佈。我仔細檢查了代碼,我確信.find()路徑是正確的 - 因爲當我不刷新頁面時,一切正常。 – um88hao