2013-10-08 17 views
0

基本上,我創建的網站使用jQuery Collapse來格式化一些元素。但是,這些元素是由PHP腳本生成的,並通過Javascript加載(見下文)。出於某種原因,加載的元素不具備所需的可摺疊性。HTML可摺疊性不會持續通過PHP加載

我已經確認,只是將生成的元素放置爲靜態HTML可修復此問題,但我希望在運行時生成HTML代碼。

這是爲什麼?有什麼我可以解決它嗎?

謝謝!下面是我想要做的

的index.html

... 
<body onload="test()"> 
    <div id="content"> </div> 
</body> 
... 

的JavaScript

function test(){ 
    // Create the request object 
    var httpReq = (window.XMLHttpRequest) ? new XMLHttpRequest() 
     : new ActiveXObject("Microsoft.XMLHTTP"); 

    // When it loads, 
    httpReq.onload = function() { 
     // Convert the result back into JSON 
     var result = httpReq.responseText; 
     document.getElementById("content").innerHTML = result; 
    }; 

    // Request the page 
    try { 
     httpReq.open("GET", "parser.php?", true); 
     httpReq.send(null); 
    } catch (e) { 
     console.log(e); 
    } 
} 

parser.php

echo '<div data-collapse="accordion"><h1>Test title</h1><div>Collapsed content</div></div>'; 
+1

爲什麼您使用jQuery和使用Ajax和DOM元素,如該工作

httpReq.onload = function() { // Convert the result back into JSON var result = httpReq.responseText; document.getElementById("content").innerHTML = result; $("#content").collapse(); }; 
? – Gerep

回答

0

你將不得不調用jQuery的崩潰加載內容後:

1

該腳本可能尋找一個代碼示例在加載時的頁面中,因此後面添加的元素不會受腳本影響。

您可能需要在加載新內容(可能或不可用)後重新運行腳本,或者找到使用實時DOM事件處理程序的更好腳本。