【问题标题】:Trouble with Ajax loading while using jQuery Mobile使用 jQuery Mobile 时出现 Ajax 加载问题
【发布时间】:2014-07-16 06:42:25
【问题描述】:

我在使用 jQuery Mobile 时遇到问题。

我在我的 Index.html 的 <head> 中包含了所有必要的东西

<link rel="stylesheet" href="css/standard.css" />
<link rel="stylesheet" href="css/jquery.mobile.icons.min.css" />
<link rel="stylesheet" href="css/jquery.mobile.structure-1.4.3.css" />
<link rel="stylesheet" href="css/idangerous.swiper.css" />
<script type="text/javascript" src="scripts/jquery-2.1.1.min.js"></script>
<script type="text/javascript" src="scripts/jquery.mobile-1.4.3.min.js"></script>
<script type="text/javascript" src="scripts/idangerous.swiper.min.js"></script>

我在另一个页面上使用 Swiper.js。但我知道 jQuery Mobile 使用 Ajax 加载仅替换后续页面中的 &lt;div data-role="page"&gt;,因此理想情况下,head 和这些 js 文件应该保持不变,但它不起作用。但是,Index.html 工作正常。

我是否误解了仅替换 &lt;div data-role="page"&gt; 内部内容的 Ajax 加载概念?谢谢。

【问题讨论】:

  • swiper 可能没有注意到 DOM 中加载的新元素,这就是停止工作的原因。您能否提供更多关于您如何在网络中使用 swiper 的信息?
  • 我跟着官方的demo是这样的: $(function(){ var mySwiper = $('.swiper-container').swiper({ //Your options here: mode:'horizo​​ntal' , loop: true //etc.. }); }) 我将此添加到我的 内容中的 Index.html
  • 那个脚本在哪里?在 ajax 加载的内容中?或者“.swiper-container”在加载的内容中?如果“swiper-container”在 ajax 加载的元素内,swiper 将不起作用,因为不是同一个元素。但是您可以将该代码放在 jquery 移动负载的回调函数中。
  • 脚本在我的 Index.html 的头部内容中的 中声明!我还尝试将脚本放在第 2 页的
    的末尾...
  • 将脚本放在第2页加载内容的底部时,脚本不起作用?这让我很困惑。你能试着把那个脚本放在$(document).ready()上吗?或者使用下面的答案。

标签: jquery ajax jquery-mobile


【解决方案1】:

我猜您正在使用 mobile.loadPage() 加载新内容,但您遇到了问题,因为容器或脚本位于“重新加载”的元素内。

所以我建议使用 done 来执行该脚本,如下所示:

    $.mobile.loadPage("page.html", true).done(function (e, ui, page) {
          var mySwiper = $('.swiper-container').swiper({
                  //Your options here: mode:'horizontal', loop: true //etc.. 
          });
    })

【讨论】:

    猜你喜欢
    相关资源
    最近更新 更多
    热门标签