Javascript 刷新jquery移动页面时会发生什么

Javascript 刷新jquery移动页面时会发生什么,javascript,jquery,html,jquery-mobile,dom,Javascript,Jquery,Html,Jquery Mobile,Dom,刷新JQUERY移动页面时会发生什么? 我使用ajax在page1上的一个名为“json”的变量中获取数据,当用户单击一个特定的动态生成的元素时,我将被单击元素的id存储在一个会话变量中,并将changePage()更改为一个新的JQM page2,其中我使用json。PropertyIwant生成一个列表,一切正常,如果我刷新第2页,即使后退和前进按钮也能完美工作 然后json.thepropertyiwant变得未定义这里是我得到的错误: Uncaught TypeError: Cannot

刷新JQUERY移动页面时会发生什么?
我使用ajax在page1上的一个名为“json”的变量中获取数据,当用户单击一个特定的动态生成的元素时,我将被单击元素的id存储在一个会话变量中,并将
changePage()
更改为一个新的JQM page2,其中我使用
json。PropertyIwant
生成一个列表,一切正常,如果我刷新第2页,即使后退和前进按钮也能完美工作 然后
json.thepropertyiwant
变得未定义这里是我得到的错误:

Uncaught TypeError: Cannot read property 'responseData' of undefined
我在一个html5页面模型中使用多页面

编辑:

  • 我使用了变量名
    json
    ,而不是
    json
    ,我只是像这样键入它 我想强调一下,不过现在我认为那是愚蠢的
  • 我也解决了我的问题。我的错误是我假设 页面刷新将为我所在的页面调用
    pageinit
    ,但它可以工作 与正常的html页面刷新和触发器没有区别
    document.ready
    每次,然后对我所在的页面执行
    pageinit

    有没有办法听音乐
    pagerefresh
    事件并覆盖其正常功能?

我相信在某些情况下,您会生成第2页的动态内容。 我相信事件是pageinit或pagecreate。这些事件只触发一次(如果将ajax页面加载设置为true)。 当您加载page1(类似于pageinit?)时,您会请求数据
刷新page2时,数据不存在,因为请求数据的事件未触发,这是完全正常的,因为刷新page2时,page1与此无关。发布代码中请求数据的部分,以及为第2页生成动态内容的部分,以了解更多信息

嗯。。。这里有一些问题

  • 首先,不要使用名为“JSON”的变量。这不好——已经有一个名为JSON的全局对象用于解析和编码JSON!您可能会意外地覆盖它

  • 正如您所发现的,如果您将数据存储在javascript中的一个变量中,那么该变量仅存在于当前页面的内存中。如果刷新页面,则该变量将不再位于内存中

    但这与jQuery Mobile没有任何关系。web浏览器就是这样工作的——在内存中创建的javascript结构不会在页面刷新之间持久化

    通常,您需要自己使用localStorage或Cookie保存数据,以便在页面刷新之间保持数据

  • 通常情况下,您不会刷新jQuery移动应用程序。因此,前一点通常不是什么大问题。用户刷新页面就像重新启动应用程序一样

    应用程序应该在启动时重新加载所需的任何数据,即。 从localStorage、Cookie或对 重新加载你必须把这个逻辑编入程序


给出一些您使用的代码,我发现我在编辑中实现了这一点,谢谢!我很好奇,有没有办法覆盖pagerefresh事件功能?我想你是想阻止刷新吗?没有,只是想听听“刷新”,然后绑定一个自定义函数来决定现在发生了什么,但我想浏览器不允许我这么做!我可以绑定F5键,但不能绑定浏览器刷新按钮,我想。。。