2010-02-04 67 views
5

什麼原因不能在返回的部分頁面中執行document.ready? 它工作正常2倍,但在第3次沒有HTML的更新後,會發生:

alert(html); 
alert($(PopUpItem)); 
$(PopUpItem).html(html); 
alert('in set popup html completed'); 

我已經全部警報執行,PopupItem和HTML有正確的價值觀。 我正在使用JQuery執行$ .post服務器調用。

另外,我可以有錯誤處理程序來捕獲,如果發生一些語法錯誤?

回答

12

在您返回AJAX,你不應該需要一個$(文件)。就緒()調用。 DOM已經被加載。這樣簡單的事情應該這樣做:

<script type="text/javascript"> 
// Do something here. 
</script> 
+4

我恨想法刪除的document.ready,因爲這既可以在頁面加載和Ajax我需要實現兩個邏輯返回腳本,但這個作品! – st78 2010-02-04 15:00:24

2

document.ready僅在頁面最初加載時執行。

爲了有一個錯誤處理程序,您可以使用更多的阿賈克斯$做你的AJAX調用(http://api.jquery.com/jQuery.ajax/)。

2

你是說在html字符串傳遞到$(PopUpItem).html()包含<script>塊用document.ready(function() { ... });裏面呢?

如果是這樣的ready事件處理程序不火的原因是,該腳本不會運行在所有。請參見this question,它具有相同的「第三次」行爲。

不要裝入<script>標籤爲標記。這完全不是可靠的跨瀏覽器,jQuery或沒有jQuery。

相關問題