我有一个可折叠的 DIV,只需单击一个按钮,我就可以重新创建 HTML 以创建不同的可折叠 DIV。但是,我创建的第二个 DIV 不可折叠。
你可以在这里看到这个问题 http://jsfiddle.net/Shinksy/SfcTk/7/
单击搜索按钮,您将看到一个可折叠的 DIV,单击“消息”按钮,这也应该会创建一个可折叠的 DIV。但是,它不再可折叠。
任何帮助将不胜感激。
谢谢
马丁
最佳答案
单击搜索时调用这两个函数。它会起作用-
JS-
//Set global variables
var newData = "";
var statusReport = "X";
var innerHtml = "";
var defaultHTML = "";
//Handle Search
$("#idoc_search").click(function() {
requestProcessedSearch();
});
function changePage() {
$.mobile.changePage("#results_page", {})
}
function requestProcessedSearch() {
document.getElementById('resultTable').innerHTML = "";
defineNewStatusDiv();
defineNewMessageDiv();//Call function here
changePage();
}
function defineNewStatusDiv() {
innerHtml = null;
defaultHTML = null;
innerHtml = document.getElementById('resultTable').innerHTML;
defaultHTML = '<div data-role="collapsible" data-theme="a" data-content-theme="a" id="status">' + '<h3>Status</h3>' + '<table id="chart' + '51' + '" class="imagetable">' + '<tr>' + '<th>IDoc</th>' + '<th>Message Type</th>';
alert(defaultHTML);
innerHtml = innerHtml + defaultHTML;
document.getElementById('resultTable').innerHTML = null;
document.getElementById('resultTable').innerHTML = innerHtml;
}
function defineNewMessageDiv() {
innerHtml = null;
defaultHTML = null;
innerHtml = document.getElementById('resultTable').innerHTML;
defaultHTML = '<div class = "ui-collapsible ui-collapsible-collapsed" data-role="collapsible" data-theme="a" data-content-theme="a">' + '<h3>Message</h3>' + '<table id="chart' + 'MATMAS' + '" class="imagetable">' + '<tr>' + '<th>IDoc</th>' + '<th>Status</th>';
innerHtml = innerHtml + defaultHTML;
document.getElementById('resultTable').innerHTML = null;
document.getElementById('resultTable').innerHTML = innerHtml;
}
这是 fiddle - http://jsfiddle.net/SfcTk/11/
PS- 您可以使用 Jquery appendTo 而不将 DOM 设为 NULL。
关于重新创建 HTML 代码后,JQuery 可折叠 DIV 失去功能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9885764/