【问题标题】:Jquery mobile page only works after reload? [duplicate]Jquery移动页面仅在重新加载后有效? [复制]
【发布时间】:2014-09-20 01:57:34
【问题描述】:

我仍然不确定我的问题是什么,但我已经详细说明了发生了什么,我尝试了什么,以及我可以做些什么来解决以下问题:

我正在使用.mmenu,这很漂亮,但我在使用 Jquery Mobile 运行它时遇到了一些冲突。

在初始页面加载时与 Jquery Mobile 一起使用时,菜单无法正常工作,但如果我手动重新加载页面,它会正常工作,所以我认为可能有一些东西正在缓存,所以我尝试使用 <meta http-equiv="Pragma" content="no-cache"/> 但这并没有不行。我什至尝试<meta http-equiv="refresh" content="0;URL='page2.asp'" /> 作为测试,页面仍然会加载损坏,但在您重新加载页面一次后会进入无限循环。因此,显然元标记根本不适用于初始页面加载。

然后我尝试了javascript:function LoadOnce(){ window.location.reload(); }并再次输入<body onLoad=" LoadOnce()">,直到我重新加载页面后循环才开始。

除了点击重新加载按钮之外,还有什么方法可以强制页面重新加载并执行我的 Jquery?

守则

菜单链接如下所示:<a href="#menu"></a>

菜单执行如下:$(document).ready(function(){ $("#menu").mmenu();});

很多事情正在发生:

  • 当我导航到新页面时,菜单显示为块元素, 它应该是隐藏的,所以看起来 $("#menu").mmenu(); 不是 执行。
  • 从新页面单击菜单图标不会打开菜单,而是尝试离开页面(例如:从 page1.asp 导航到 page2.asp, 单击page2.asp 上的#menu 链接,而不是滑动打开#menu 在 page2.asp 上,页面尝试导航到 page1.asp#menu)

Here is a test page where you can see the behaviour described above.

刷新页面使其工作,删除jquery.mobile-1.4.3.js 使菜单工作而无需刷新,但显然破坏了网站的结构,为什么我的页面在强制重新加载后可以工作但不能在初始负载上?有没有一种我还没有考虑过的简单方法来解决这个问题?

【问题讨论】:

  • 重新加载页面似乎不是一个合适的解决方案。我认为问题出在其他地方。可以分享一个链接吗?
  • P.S. <meta http-equiv="Pragma" content="no-cache"/> 告诉浏览器不缓存 HMTL 页面,它仍然会缓存外部资源,即 js 和 css 文件,我猜你的问题出在哪里。
  • @TsanyTsanev 谢谢,很高兴知道,我同意重新加载页面是一种廉价的解决方法,我会看看如何将一些页面放在实时服务器上。
  • 这是一个链接:sh-e.ms/jqueryproblem

标签: jquery html jquery-mobile reload


【解决方案1】:

除非我完全错过了这里的问题,否则我想我曾经遇到过类似的问题,我的页面会在我的 js ajax 调用之前加载(或窗口位置会改变),所以什么都没有出现在页面。

我的解决方案最终是将 jQuery 内容放在 html 页面上的脚本标记中,而不是放在单独的脚本中。因此,与其在单击按钮或其他操作时重新加载页面,或者在其他地方导航,不如让按钮或表单操作调用一些函数来执行您需要的 jQuery,然后重新加载页面(如果这是目标),或者导航到你想要的页面。关键是你在调用成功下包含了重新加载,所以它只会在你的 jQuery 成功执行之后执行。希望这会有所帮助

【讨论】:

    猜你喜欢
    • 2014-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-22
    • 1970-01-01
    相关资源
    最近更新 更多