jQuery Mobile - 使用后续jQuery.show()问题进行哈希处理

时间:2014-08-01 16:46:21

标签: javascript jquery html jquery-mobile

我正在为学校做最后的项目,我遇到了一个让我难过的错误。我有一个jQM页面,其中包含两个div(详细内容,可排序内容),一个用于保存报告A,另一个用于保存报告B.我已将jQM哈希处理演示调整为.show()正确的报告div和.hide()另一个报告根据查询字符串“选择”进行div。

只要报告页面是在浏览器中物理加载的页面,这似乎就能正常工作。不幸的是,当直接加载另一个页面(通过URL)并且然后单击顶部的Reports按钮时,一旦加载报告页面就没有加载内容div(尽管控制台日志确认事件正在被触发)并且如果点击“选择报告”按钮,渲染jQueryMobile弹出窗口有一个奇怪的问题。然后,当访问任何其他页面时,会发生许多与系统正确跟踪活动页面有关的奇怪故障。

以前是否有人遇到此类问题?我希望这是一件我想念的简单事情,这让我疯了!

如果需要进一步的信息,请告诉我

2 个答案:

答案 0 :(得分:0)

您将事件绑定到$('document'),它会尝试搜索<document>标记而不是文档本身。请删除它周围的引号。

此外,在您的代码中,您在页面更改时使用$(document).ready()。但是,$(document).ready只会在页面加载开始时触发一次(在DOM完成加载时)。您应该尝试使用pageinit事件:

$(document).bind("pagechange", function () {
    $(document).on('pageinitfunction() {
     ...

http://api.jquerymobile.com/pageinit/

readypageinit之间的区别是什么?

jQuery Mobile: document ready vs page events

答案 1 :(得分:0)

由于我无法在合理的工作时间内解决问题,因此我重新编写了我的网页处理显示报告的方式。我创建了一个报告选项的菜单页面,该页面链接到附加了相应数据的内部页面。你可以在这里看到http://hombero.com/final-storms#page-reports

然而,对于另一组数据,我随后创建了一个动态菜单,该菜单将生成的内部页面添加到DOM,其中数据对应于菜单选项。它使用jQuery Mobile pagecreatepagebeforeshow和jQuery click事件。

对于有兴趣的人,您可以在http://hombero.com/final-storms/#page-tracks

看到它的实际效果