2013-02-23 46 views
0

淡化它,我是一個承認的jQuery小白,通過API文檔和學習的jsfiddle庫。目前我正在試圖理解爲什麼下面不工作,因爲我期待。jQuery的:如何設置文本ajaxComplete方法,但不是立即顯示

這裏的HTML

<div class="trigger">Trigger</div> 
<div class="result"></div> 
<div class="log"></div> 

的簡單的部分,這裏是我想了jQuery ...

$(document).ajaxComplete(function (event, xhr, settings) { 
    if (settings.url === "ajax/test.html") {   
     $(".log").hide(); 
     $("Triggered ajaxComplete handler. The result is " + xhr.statusText).appendTo(".log").fadein(); 
    } 
}); 

$(".trigger").click(function() { 
    $(".result").load("ajax/test.html"); 
}); 

不幸的是這似乎是發生的是,追加操作沒有正確執行未處理的異常被拋出,因爲文本「引發阿賈克斯......」就好像它是一個選擇正在接受治療,但我從閱讀jquery API的appendTo()函數的理解是,你可以在這樣的動態創建的內容。很顯然,我走錯了地方明顯,將不勝感激的人誰可以解釋爲什麼這是錯的,我能做些什麼來糾正。

回答

2

使用.text()代替。

$(".log").hide() 
     .text("Triggered ajaxComplete handler. The result is " + xhr.statusText) 
     .fadeIn(); 

否則,您需要使用.append()來代替。

$(".log").hide() 
     .append("Triggered ajaxComplete handler. The result is " + xhr.statusText) 
     .fadeIn(); 

注意這兩種方法是不一樣的。前者將取代.log的內容,後者將文本追加到.log

+0

非常感謝亞歷山大。 – pip 2013-02-23 11:23:07

0

嘗試

$(".log").html("Triggered ajaxComplete handler. The result is " + xhr.statusText) 
    .fadeIn(); 
相關問題