1

jqueryを使用して動的アコーディオンを作成しようとすると、個々の要素が折りたたまれていない理由がわかりません。それらは、アコーディオン効果を帯びるのではなく、テキストとして表示されます。誰かが私の間違いを見つけることができますか?(データ変数にはすべてデータが含まれていると想定します)

編集:好奇心のためにクロムの代わりにFirefoxで試してみましたが、アコーディオンの動作は機能します..わかりません

var outdiv = $('<div data-role="collapsible-set"></div>');

for(var i=0; i<data.length; i++){

    var innerdiv = $('<div data-role="collapsible" data-collapsed="true" ></div>');
    innerdiv.append('<h3>' + 'Tweet #' + i + '</h3>');
    innerdiv.append('<p>' + data[i].text + '</p>');

    outdiv.append(innerdiv);

    outdiv.appendTo('#output');


}
4

4 に答える 4

3

collapsibleset()あなたはあなたのメソッドを呼び出す必要がありますoutdiv

$('#output [data-role=collapsible-set]').collapsibleset();

ここでjsFiddleを動作させる

于 2013-03-22T03:08:08.270 に答える
0

私はjQueryモバイルユーザーではありませんが$('#output').trigger('create')、ループの後のように、追加したコンテンツの動作を設定する必要があるように見えます。

それはここでもっと議論されます

于 2013-03-22T02:04:37.987 に答える
0

この方法で要素全体を選択できるかどうかはわかりませんが、jQueryのAttributecontainsSelectorを使用することもできます

//So your outdiv would become 
var outdiv = $('div[data-role*="collapsible-set"]');

//And then innerdiv, something like
var innerdiv = $('div[data-role*="collapsible"][data-collapsed*="true"]');
于 2013-03-22T02:13:11.087 に答える
0

コードを次のように変更します。

outdiv.append(innerdiv).collapsibleset("refresh");

jQuery Mobilever1.3.2をダウンロードする必要があります。

于 2014-03-04T01:59:57.663 に答える