我正在一個小型網站上工作,部分由AJAX驅動。對於其中的一部分,當用戶點擊一個按鈕時,內容被加載到一個元素中。問題在於,不是將HTML插入到元素中,而是將元素(#user .padded)完全刪除!但是,從控制檯(Chrome)運行它工作得很好。jQuery html()移除元素而不是設置內容
下面是相關代碼:
var attr = $(this).attr('data-id');
if (!$('#user').is(':visible')) {
$('#user').slideDown(300);
}
var user = $('#user');
$.ajax({
url: window.baseurl + "/admin/users/" + attr + "/get",
timeout: 5000,
cache: false
}).success(function(response) {
$('#user .padded').html(response);
}).fail(function() {
$('#user .padded').html('<div class="alert">Unable to load the user, we\'re sorry!</div>');
}).always(function() {
spinner.stop();
});
是的,我不知道這是不是在目前非常有效的,但我已經簡化它進行調試。在這種情況下,只有fail()函數被調用,因爲服務器端尚未實現。沒有Javascript錯誤報告,只有404。
我讀了一些關於html()清除某些狀態,所以我也嘗試用show()而不是slideDown(300)。那裏也沒有運氣。
有什麼想法會導致這種情況? 前:
後:我
'.html'會清除您選擇的元素內的所有內容,然後將您傳遞的內容作爲參數插入。如果你想追加內容,請參閱appendTo函數。 – BrunoLM
我在上面的圖片之前和之後添加了。它不會取代內容 - 這正是我想要的 - 它將刪除整個元素。 –
請向我們展示'spinner.stop'的代碼嗎? –