jQuery Mobileの折りたたみ可能な項目<li>
のチェックボックスのリストにコンテンツを動的に追加しようとしています。素敵な丸いコーナーとグループ化されたアイテムで適切な書式設定ができません。葉レベルで他の要素を追加すると、さらに悪化します。jQueryモバイルで動的コンテンツを追加するときの適切な書式設定
Hereは、(明らかにヘッダにjQueryとjquerymobileスクリプトやCSSを追加)問題を示した例です。
<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>
私はappend()
に呼び出した後.page()
を追加しようとしたが、それはしかし、正しく動作しませんでした少し良く。
私の例以外にも、jQuery MobileがDOM構造を使いこなした後に、DOMツリーにコンテンツを動的に追加する方法が一般的な質問です。私は、木の一部を「ジャケーロモライズ」する機能があると信じていますが、私はそれを見つけることができません。
ありがとうございました!
EDIT:要約すると、の1つの<li>
要素に要素を動的に追加しようとしており、要素をリスト自体に追加しようとしていません。 listview
をリフレッシュしても、ここでは役に立たないようです。
EDIT 2:私は.append()
(CF JQM FAQ)に連鎖させることができます.trigger("create")
機能を発見したとして、私は少し近づいています。以下のスクリプトでは、data-role="controlgroup"
は素敵な丸いボックスで正しいフォーマットを提供していませんが、少し上手く機能します。
$("#list1 fieldset").append('<input type="checkbox" id="cb2" /><label for="cb2">More text</label>').trigger("create");
ある時点で完全な回答を投稿します。
EDIT 3:ここで私は従うjsFiddle
PS:私の例ではチェックボックスが無効になっていて折りたたみ可能なアイテムがデフォルトで折りたたまれていないのも不思議ですが、これはセカンダリです。 –