动态Jquery移动手风琴
问题描述:
在试图用jquery创建一个动态手风琴时,我找不到为什么各个元素都没有折叠。它们只是作为文本出现,而不是承担手风琴效应。任何人都能发现我的错误吗(假设数据变量都包含数据)动态Jquery移动手风琴
编辑:我只是尝试在Firefox,而不是镀铬为了好奇和手风琴行为works..I不明白这一点
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');
}
答
您需要在collapsibleset()
方法调用您outdiv
$('#output [data-role=collapsible-set]').collapsibleset();
工作jsFiddle这里
答
我不知道,如果你可以选择整个元素这样或没有,但你也可以使用jQuery的Attribute Contains Selector
//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"]');
答
你的代码更改为:
outdiv.append(innerdiv).collapsibleset("refresh");
您必须下载jQuery Mobile的版本1.3.2。
很好的答案!你能否简要解释为什么需要而不是触发器? – Sam 2013-03-22 03:15:32
他们都在jqm 1.2和1.3工作。 'collapsibleset()'直接调用窗口小部件的初始化方法,'trigger('create')'触发'create'事件,但是你需要在父元素上使用它**,当你需要增强一个以上小部件一次。 – peterm 2013-03-22 03:42:51