我有一個通過ajax加載的對話框。該Ajax的paylaod包含html和javascript。ajax加載內容失敗的jquery選擇器
該對話框顯示得很好,包含在該有效載荷中的JS執行。
但是,我無法從有效負載中的JS中選擇任何元素(無論是通過id,class還是元素類型)。
可以說有效載荷有:
<div>
<ul id="testid">
<li>A</li>
<li>B</li>
</ul>
</div>
<script type="text/javascript">
$(document).ready(function() {
console.info('test: ' + $("#testid").length);
});
</script>
這導致測試:0出現在控制檯中。
如果我改變選擇器在'body'上選擇,那麼它會產生一個非零值。
很明顯加載的內容正在顯示,它包含的JS正在執行,我的理解是.ready()調用應該允許更新DOM時間以包含html有效內容。
不幸的是,在這種情況下,我沒有直接控制ajax加載本身,因爲我使用了一個框架來爲我做對話框功能(zotonic)。其他ajax加載的頁面我有JS選擇ajax加載的有效載荷中的元素正在工作 - 它只是對話框的東西,(迄今)似乎失敗。
我有點失落,爲什麼只是這是錯誤的。我已經做了盡職調查,並在過去的幾天裏搜索了google等,但沒有解決方案,所以我想在這裏大聲呼救。
傑森
感謝您的計時器建議 - 肯定爲我工作..有沒有掛鉤,我知道zotonic讓我知道何時加載ajax對話框完成更新的DOM ..雖然我想我可能會建議它他們因爲做一個定時器(雖然有效:))對我來說似乎有點笨拙 – JAT 2010-12-05 23:06:49