Próbuję dynamicznie dodać zawartość do listy wyboru w składanej <li>
elementu jQuery Mobile. Nie mogę uzyskać odpowiedniego formatowania z ładnymi zaokrąglonymi narożnikami i zgrupowanymi elementami. Jeszcze gorzej, gdy dodaję inne elementy na poziomie liścia.Prawidłowe formatowanie podczas dodawania zawartości dynamicznej w jquery telefonu
Here jest przykładem, który pokazuje problem (dodać jQuery i skrypty jquerymobile i CSS w nagłówku oczywiście):
<body>
<div data-role="page" id="page">
<ul id="listList" data-role="listview">
<li id="list1" data-role="collapsible">
<h3>list 1</h3>
<div data-role="fieldcontain">
<fieldset data-role="controlgroup" id="fs1">
<input type="checkbox" id="cb1" /><label for="cb1">text</label></fieldset></div></li>
<li id="list2" data-role="collapsible">
<h3>list 2</h3>
<p>here comes another list of checkboxes...</p></li></ul>
<input type="button" onclick="addCheckbox();" value="add a checkbox to list1" /></div>
</body>
<script>
function addCheckbox() {
$("#list1 fieldset").append('<input type="checkbox" id="cb2" /><label for="cb2">More text</label>');
}
</script>
próbowałem dodać .page()
po wywołaniu append()
ale to nie działa prawidłowo, choć trochę lepiej.
poza moim przykładzie pytanie rodzajowy jest sposób dynamicznego dołączania zawartości do drzewa DOM po jQuery Mobile bawił się ze strukturą DOM. Wierzę, że istnieje funkcja, która "jockeyymobilizes" część drzewa, ale nie mogę go znaleźć.
Bardzo dziękuję za pomoc!
EDYCJA: Krótko mówiąc, próbuję dynamicznie dodawać elementy do jednego elementu <li>
z listview
i nie próbuję dodawać elementów do samej listy. Odświeżenie listview
nie wydaje się tu pomocne.
EDIT 2: jestem coraz nieco bliżej jak znalazłem funkcję .trigger("create")
które mogą być przykuty do .append()
(cf JQM FAQ). Poniższy skrypt działa nieco lepiej, ale data-role="controlgroup"
nie zapewnia odpowiedniego formatowania z ładnymi zaokrąglonymi ramkami.
$("#list1 fieldset").append('<input type="checkbox" id="cb2" /><label for="cb2">More text</label>').trigger("create");
Będę zamieszczać pełną odpowiedź, jeśli dojdę tam w pewnym momencie.
EDIT 3: Tu jest mój przykład ilustruje w jsFiddle
PS: Zastanawiam się również, dlaczego pole wyboru wydaje się wyłączone, a elementy zwijane nie są zwinięte domyślnie w moim przykładzie, ale jest to pomocnicza. –