我有一个可折叠的 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/

10-12 05:15