【问题标题】:"data-url" jQuery Mobile confusing“data-url” jQuery Mobile 令人困惑
【发布时间】:2012-01-13 14:02:12
【问题描述】:

任何人都可以对 jQuery Mobile 中的“data-url”属性有更多的了解吗?目前我阅读了documentation,我发现它太令人困惑了,是否有工作演示或其他东西。

请避免复制粘贴来自 jQuery 移动网站的内容,它绝对有帮助 有人像我一样在同样的困惑中寻找同样的东西。

【问题讨论】:

标签: jquery mobile jquery-mobile data-url


【解决方案1】:

您正在查看文档的一个相当旧的链接。最新版本的文档包含有关 data-url 属性用途的更多信息。您可以在以下链接的相关页面上查看新的 1.0 版本:http://jquerymobile.com/demos/1.0/docs/pages/page-navmodel.html

我真的相信文档,尤其是 1.0 文档,会更好地解释这一点,但无论如何我会尝试:为了真正理解 data-url 属性,你需要了解结合所有的 jQuery Mobile 模型将您的 HTML 页面转换为移动网站的单个 HTML 文档。这些页面通常会延迟加载到同一个文档中。当您导航到页面上加载了 jQuery Mobile 的 HTML 文档时,HTML 将被解析,并且只会显示一个“页面”。

data-url 是您放置在 jQM 页面上以启用 Ajax 导航的属性。当您单击链接时,jQM 导航将首先在页面上查找匹配的 data-url 属性。例如,如果您浏览到 URL 为“example-host/some/path#/features/123”的启用 jQM 的页面,jQuery Mobile 将首先在当前文档中查找具有属性 @987654324 的 jQM 页面@。如果找到它,则隐藏当前 jQM 页面并显示它找到的页面。如果没有找到,它会尝试向 URL“example-host/features/123”发出 Ajax 请求,如果找到有效页面,则将内容作为另一个 jQM 页面加载。

这些 jQM 文档链接应该提供进一步的帮助:

Anatomy of a Page

jQM Page Model

【讨论】:

    【解决方案2】:

    data-url 还有一个非常重要的用例——在重定向期间:

    假设用户导航到/store/youraccount,但他们没有登录。 您的服务器可能会将它们重定向到登录页面/store/login。这会以 301 重定向的形式返回浏览器,即使 jQuery Mobile 不知道更改也不会加载该重定向。该页面将正确显示,但顶部的 URL 仍为 store/youraccount

    通过像这样在登录页面上设置data-url,jQuery mobile 可以在重定向后正确更新URL,这意味着它可以被加入书签并且<form> 标签在没有action 的情况下也可以工作。

    data-url 如何阻止 <form> 中断:

    如果您的页面包含一个未定义 action 属性的 <form> 标签,则默认行为是回发到当前页面 - 是的,您猜对了,浏览器仍然认为我们在 /store/youraccount

    所以当您输入data-url='/store/login 时,它可以正确更新网址。

    <div data-role="page" data-url="/store/login" 
         class="ui-page ui-body-c ui-page-active" id="page_">
    

    注意:即使您的表单有action,您仍然需要设置 data-url。这只是一个示例,展示了关闭 data-url 会如何破坏事情。

    【讨论】:

      猜你喜欢
      • 2015-05-02
      • 2016-11-23
      • 1970-01-01
      • 2022-01-21
      • 2022-01-17
      • 1970-01-01
      • 2018-02-26
      • 2012-05-15
      • 1970-01-01
      相关资源
      最近更新 更多