我正在将我的网站从使用 jQueryUI 转换为 jQuery Mobile,但遇到了一些麻烦。
我有一个页面可以让用户添加新的时间表条目。他们单击“添加”按钮,它会从服务器检索到页面的局部视图。
问题是 jQuery Mobile 没有应用于局部视图中的任何元素。
在将元素插入页面后,如何强制 jQuery Mobile 处理我的元素?
我正在将我的网站从使用 jQueryUI 转换为 jQuery Mobile,但遇到了一些麻烦。
我有一个页面可以让用户添加新的时间表条目。他们单击“添加”按钮,它会从服务器检索到页面的局部视图。
问题是 jQuery Mobile 没有应用于局部视图中的任何元素。
在将元素插入页面后,如何强制 jQuery Mobile 处理我的元素?
简短的回答是,您可以create
在插入局部视图的父元素上触发该方法。
例如$('#container').trigger( "create" );
或者,大多数小部件可以通过在元素上调用它们来手动初始化,例如对于 listview: $('#myListview').listview()
。如果您只有几个元素需要增强并且您不想遍历容器的所有子元素,这将很有用。您还应该知道,对于许多小部件,还有一个刷新方法,如果您在它已经初始化之后向其中添加元素,则可以调用该方法$('#myListview').listview('refresh)
。
另请查看 JQM 文档中处理此问题的以下问答,并了解为什么有必要调用这些方法。
问题:注入页面的内容没有得到增强。
回答:
jQuery Mobile 无法知道您何时将内容注入页面。要让 jQuery Mobile 知道您注入了必须增强的内容,您需要确保调用插件来增强新元素或在父容器上触发(“create”),这样您就不必调用每个插件手动。