【问题标题】:Jquery Mobile: updating a form more than onceJquery Mobile:不止一次更新表单
【发布时间】:2011-08-11 21:09:59
【问题描述】:

好的,经过几个小时的困惑后,我发现在 Jquery Mobile 元素上调用 page() 只能工作一次。

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

【问题讨论】:

    标签: jquery-mobile


    【解决方案1】:

    更新

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

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


    一个元素只能使用一次。还没有例外。

    如果 $('#container') 是您的元素,并且您将其内容替换为 AJAX,那么您可以做两件事:

    1. 拨打.page()$('#container').children()
    2. 清空容器并在其中创建一个 div,并在其上调用.page()

    如果您的内容需要被包装(如列表),第二个选项会更好,我一般会推荐它。

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

    【讨论】:

    • 非常感谢您在这方面的帮助。你是说如果我销毁元素然后重新创建它会允许我再次调用 page() 吗?虽然我使用的是 checkboxradio('refresh'),但这似乎不能正常工作。每个单独的复选框元素都被重绘,但他们没有意识到它们都是同一个复选框组的一部分,并且没有相应的样式。 (即,每个复选框项目之间存在间隙,而不是将它们与第一个和最后一个元素上的圆角一起收集)。吉米。
    • 如果你把它们放在 HTML 中,它们会正确呈现吗?如果是,您应该尝试调用在父元素上重新绘制所需的任何内容。如果不是,则将它们分开处理。换句话说,要让它工作,你需要重新绘制父元素,而不是复选框本身。
    【解决方案2】:

    在几个不符合我需要的解决方法之后,我发现了这个特殊的语句:删除或覆盖现有的 div 并在新的 div 上调用 .page()。如果必须多次重新加载/重新渲染/刷新内容,这种方法效果最好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-28
      • 2013-09-28
      • 1970-01-01
      • 2012-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多