Jquerymobile添加动态可折叠div

可能重复:
动态添加可折叠元素

我想知道如何动态添加一个可折叠div,这样的事情可以用Jqm listviews完成,调用lisview(’refresh’)之后

这是测试代码:

http://jsfiddle.net/ca11111/UQWFJ/5/

编辑:在上面,它被附加和渲染,但多次

edit2:好像这样工作?

如何在初始化元素时省略refresh (不刷新):

 $('

22

test
').appendTo($('#coll div:first')); $('#coll').find('div[data-role=collapsible]').collapsible();

以下是JSFiddle的更新版本: http : //jsfiddle.net/UQWFJ/7/ (注意我将setTimeout更改为setInterval以不断向DOM添加新元素)

你也可以通过在变量中保存新元素来优化它,这样你就可以在该元素上调用.collabsible()

 var $element = $('

22

test
').appendTo($('#coll div:first')); $element.collapsible();

这是一个有这种优化的JSFiddle: http : //jsfiddle.net/UQWFJ/9/

jQM文档:

增强新标记
页面插件调度一个pagecreate事件,大多数小部件都使用它来自动初始化自己。 只要引用了一个小部件插件脚本,它就会自动增强它在页面上找到的小部件的任何实例。

但是,如果您通过Ajax生成新标记客户端或加载内容并将其注入页面,则可以触发create事件来处理新标记中包含的所有插件的自动初始化。 这可以在任何元素(甚至是页面div本身)上触发,从而节省了手动初始化每个插件(listview按钮,选择等)的任务。

例如,如果通过Ajax加载了一个HTML标记块(比如登录表单),则触发create事件以自动将它包含的所有小部件(在这种情况下为输入和按钮)转换为增强版本。 此方案的代码为:

 $( ...new markup that contains widgets... ).appendTo( ".ui-page" ).trigger( "create" ); 

我不确定这是否是您想要的,但如果您想要做的就是能够动态添加可折叠div,您可以在代码端执行此操作。 例如,我使用aspx.vb,但如果你使用其他语言,你可以根据自己的情况轻松调整。 在.aspx(html代码)中编写这行代码,您希望在其中显示动态html代码。

  

完成后,右键单击屏幕并选择“查看代码”

然后你添加它

 Protected Sub page_load(ByVal Sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dynamic() End Sub Public Sub Dynamic() Dim strHtml As New StringBuilder Dim strJava As New StringBuilder Dim dblNumCollapsibles As New Double dblNumCollapsibles = 7 For i = 1 To dblNumCollapsibles strHtml.Append("
" _ & "

Title of Collapsible

" _ & "

" _ & "The text inside of the Collapsible" _ & "

" _ & "
") Next Me.CollapseMe.Text = strHtml.ToString

这将动态添加7个可折叠div列表栏。 您可以通过更改“dblNumCollapsibles”来更改此设置

创建可折叠div的html动态添加到某个div并在该div调用.trigger(’create’)$(div).trigger(’create’)这将创建该div并呈现可折叠div