【问题标题】:JavaScript does not run on first load if I include the jquery.mobile-1.4.3.min.js library如果我包含 jquery.mobile-1.4.3.min.js 库,JavaScript 不会在第一次加载时运行
【发布时间】:2014-08-16 05:55:06
【问题描述】:

我面临一个非常奇怪的问题,即我的 javascript 代码在第一次加载页面时没有运行。如果我重新加载/刷新页面,脚本运行良好。

经过一番尝试后,我意识到如果我从上一页(重定向到我的当前页)中删除 jquery.mobile-1.4.3.min.js 库,那么脚本按预期运行。

谁能帮忙解释为什么会发生这种情况,我该如何解决?

更新: 在打开 hpme 页面(其中包含指向包含 JS 的页面的链接)时,我可以在控制台中看到以下错误: 未捕获的类型错误:无法设置未定义的属性“移动”。

请注意,这个主页基本上是带有库声明和 html 链接的简单代码。

编辑: 我之前错过了 jQuery 库,因此错过了 Uncaught TypeError。 现在,我的库按以下顺序排列:

<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/jquerymobile/1.4.3/jquery.mobile.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.11.1/jquery-ui.min.js"></script>

<link rel="stylesheet" href="//ajax.googleapis.com/ajax/libs/jquerymobile/1.4.3/jquery.mobile.min.css" />
<link rel="stylesheet" href="//ajax.googleapis.com/ajax/libs/jqueryui/1.11.1/themes/smoothness/jquery-ui.css" />

现在我的控制台中没有错误,但下一页中的 JS 在第一次加载时仍然没有运行。奇怪的是,如果我删除 jquery.mobile-1.4.3.min.js 库,JS 工作正常。

【问题讨论】:

  • 您是否在浏览器的控制台中看到任何错误?
  • 是的,我可以在控制台中看到 Uncaught TypeError: Cannot set property 'mobile' of undefined error。在我的问题中更新了相同的内容。
  • 尝试改变包含js文件的顺序,先包含jquery js,再包含jquery mobile的相关js。
  • 在 jQuery Mobile 之前你是否包含过 jQuery 1.8+?
  • 如果您收到该错误,1) 您使用的是 jQuery 1.7 或更早版本 2) 您在 jQuery 之前加载 jQuery-Mobile。

标签: javascript jquery html jquery-mobile


【解决方案1】:

单页模型

jQuery Mobile 通过 Ajax 加载外部页面;当您有指向另一个页面的链接时,jQM 会在该页面中加载第一页 div &lt;div data-role="page"&gt; 并忽略该 div 之外的其他标签。

如果你有 JS 代码要在加载的页面中运行,你必须将它放在页面 div 中。

<div data-role="page">
   <!-- JS code -->
</div>

【讨论】:

  • 您的解决方案完美运行。谢谢。但是,在我的 JS 代码中,我动态地将新行添加到 html 表中。因此,页面只是继续无限加载。关于我应该将 JS 放在我的 div 中何处的任何提示?
  • 使用 $(document).on("pagecreate",function(event) 解决了上述问题。仍然感谢。
  • @user3933833 这取决于您的代码。如果您发布一个包含相关详细信息的单独问题,将更容易找到解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-27
  • 1970-01-01
  • 1970-01-01
  • 2019-12-02
相关资源
最近更新 更多