jQuery Mobile刷新可折叠

时间:2014-02-18 17:47:21

标签: javascript jquery html jquery-mobile

我的页面中有一些<div data-role="collapsible">...</div>(我不使用可折叠集,因为我希望可以同时打开几个)然后我删除它们并使用Javascript创建一些新的。现在我希望他们拥有jQuery Mobile Styling,但无论我做什么,他们都不会刷新。我试过了:

$("parentdiv").refresh();
$("parentdiv").trigger("create");
$(".ui-collapsible").refresh();
$(".ui-collapsible").trigger("create");

我甚至在每个人周围放置了一个可折叠的套装,并试图用这个进行刷新(在jQuery Mobile Documentation中描述)

我添加了$("<div data-role="collapsible">...</div>").insertBefore("#foo");

的新div

这样做的正确方法是什么?刷新后,内容是否也以jQuery Mobile风格显示?

更新

这里没有刷新可折叠的内容是我的代码:

var newColla = "<div id=\"colla" + i + "\" data-role=\"collapsible\" data-collapsed=\"true\" data-collapsed-icon=\"minus\" data-expanded-icon=\"bars\">" +
               "<h3 id=\"" + matrikelnummer + "\">" + matrikelnummer + " " + studentName + "</h3><div class=\"colla-content\">" + 
               "<div data-role=\"fieldcontain\" style=\"margin:0px;width:100%;text-align:right;\">" + 
                    "<a href=\"\" data-role=\"button\" id=\"edit_" + matrikelnummer + "_" + studentName + "\" class=\"edit ui-btn-right\" data-mini=\"true\" data-inline=\"true\" data-icon=\"edit\" data-iconpos=\"left\">Teilnehmer bearbeiten</a>" +  
                    "<a href=\"\" data-role=\"button\" id=\"delete_" + matrikelnummer + "_" + studentName + "\" class=\"delete ui-btn-right\" data-mini=\"true\" data-inline=\"true\" data-icon=\"delete\" data-iconpos=\"left\">Teilnehmer löschen</a>" + 
                "</div>";
// Für jede ausgewählte Aufgabe einen Slider hinzufügen
for (var j = 0; j < aufgaben.length; j++) {
    newColla += "<label for=\"slider_mini\">Aufgabe " + aufgaben[j] + ": (max." + allMaxPoints[j] + "Pkt.)</label>" +
    "<input type=\"range\" name=\"slider_mini_" + matrikelnummer + "_" + aufgaben[j] +"\" class=\"slider-mini allSliders\" id=\"slider_mini_" + matrikelnummer + "_" + aufgaben[j] + "\" " + theme + " step= 0.5 value=\"0\"" + 
    "min=\"0.0\" max=\"" + allMaxPoints[j] + "\" data-highlight=\"true\" data-mini=\"true\" />"; 
                                }
newColla += "</div></div>";
$(newColla).collapsible().trigger("create").insertAfter("#timer");

2 个答案:

答案 0 :(得分:7)

您只需使用.collapsible()可折叠小部件没有refresh方法。

$(document).on("pageinit", function () {
    var collapsible = '<div data-role="collapsible"><h3>Heading</h3><p>Contents</p></div>';
    $("[data-role=content]").append($(collapsible).collapsible());
});
  

<强> Demo

答案 1 :(得分:0)

试试这个:

$( ".selector" ).collapsibleset( "refresh" );