jQuery Mobile 和 "query parameters"用于 hashbang 导航

标签 jquery navigation jquery-mobile hashbang

我正在使用 jQuery Mobile,并且一个 HTML 页面中有几页。当打开这些页面时,我想为它们传递参数,以便它们的参数持久化在URL中。

例如

  <a href="#map?x=4&y=2"

它将打开,我可以在 beforeshow 事件中访问参数 X 和 Y。

这可能吗?如何实现?您建议使用 hashbangs 编码参数的替代方法是什么?

最佳答案

我建议您不要使用哈希“参数”,因为当前对它的支持存在错误。

我会拦截所有链接上的点击并查找特定的数据元素,例如数据参数:

    $('a').live('click',
        function(e) {
            var data = $(e.target).jqmData()
            globalParams = data.params !== null ? data.params : null
        }
    )

在你的 HTML 中你可以去

<a href="#map" data-params="x=4&y=2">....</a>

在本例中,您将创建一个名为 params 的全局变量,您应该能够从所有代码中以统一的方式访问该变量。

你必须自己解析这些参数,但这并不难,可以使用这样的东西:

function getCurrentParams() {

    if (!params) {
        return null
    }

    var res = {}
    $(params.split('&')).each(
        function(i, e) {
            var pair = e.split('=')
            if (pair.length !== 2) {
                return
            }
            res[pair[0]] = pair[1]
        }
    )

    return res
}

关于jQuery Mobile 和 "query parameters"用于 hashbang 导航,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6629776/

相关文章:

javascript - 将文本框值传递给 JavaScript 函数

javascript - 将更多图像添加到 Canvas 以进行拖放

javascript - 如何转义JS和JSON之间的双引号

ios - 如何在 iOS objective-c 中仅隐藏后退栏按钮项目标题

android - $.ajax POST 返回 "status":403 ,"statusText" :"Forbidden" cordova android

javascript - Angularjs 自定义 select2 指令

css - 向只有子菜单的菜单项添加下拉箭头指示器?

html - 具有不同 <li> 高度的内联导航中的 100% 高度链接

javascript - 将数据从一个页面传输到另一个 jQuery Mobile

javascript - Jquery 移动页面不扩展可折叠