2011-03-19 61 views
1

好了,经过了数小时的困惑后,我发现在Jquery Mobile元素上调用page()只能使用一次。Jquery Mobile:多次更新表格

如果我想通过AJAX多次更新表单,该怎么办?

回答

8

更新

jQuery Mobile的β2引入了create事件。 .trigger('create')将JQM增强功能应用于元素及其子元素。

请参见:http://jquerymobiledictionary.pl/faq.html


你只有一次使用它的元素。没有例外。

如果$('#container')是你的元素,并替换它与AJAX内容,那么有两件事情可以做:

  1. 呼叫.page()$('#container').children()
  2. 空容器和创建它的内一个div ,并致电.page()就可以了。

如果你的内容需要包装(比如列表),我会推荐它的一般情况下,第二种方法更好。

如果您使用的是listview或其他东西,请看.listview('refresh')或其他专用方法。

+0

非常感谢您的帮助。 你是说如果我摧毁元素,然后重新创建它将允许我再次调用页面()? 尽管我使用checkboxradio('刷新'),但这似乎无法正常工作。每个单独的复选框元素都被重绘,但他们没有意识到它们都是同一个复选框组的一部分,并且没有相应的样式。 (即每个复选框项目之间存在间隙,而不是将它们与第一个和最后一个元素上的圆角一起收集)。 Jimmy。 – Jim 2011-03-21 09:35:51

+0

如果将它们放入HTML中,它们是否可以正确渲染?如果是的话,你应该尝试调用任何需要重绘父元素的东西。如果不是,他们分开处理。换句话说 - 为了使它工作,你需要重新绘制父元素,而不是复选框本身。 – naugtur 2011-03-21 11:40:44

1

经过几个解决方案不符合我的需求,我发现这个特别的声明:删除或覆盖现有的div和在新的div上调用.page()。如果内容必须重新加载/重新呈现/刷新不止一次,则此效果最佳。