jquery mobile - 第二次访问页面后javascript没有触发

时间:2014-09-05 01:23:09

标签: javascript html jquery-mobile

我遇到了jQuery mobile的一个奇怪的问题 - 如果我有一个到同一页面的锚点链接,那么点击链接并返回到同一页面后页面上的javascript就不会运行了。

例如(test.html):

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>

    <link rel="stylesheet" href="https://code.jquery.com/mobile/1.4.1/jquery.mobile.structure-1.4.1.min.css" /> 
    <script src="https://code.jquery.com/jquery-1.10.2.min.js"></script> 
    <script src="https://code.jquery.com/mobile/1.4.2/jquery.mobile-1.4.2.min.js"></script> 

    <script type="text/javascript">
        alert('hello');
    </script>
</head>
<body>
    <div style="height: 1000px">
        <a href="test.html?dosomething=1">test</a>
    </div>
   </body>
</html>

...“hello”警报首次显示,但点击“测试”链接(返回同一页面)后,警报不会发生。

如果删除对jquery mobile js的引用,那么它会按预期工作,显示“hello”。

有谁知道这里发生了什么?

1 个答案:

答案 0 :(得分:0)

jQuery mobile通过AJAX加载内部链接。

尝试将锚点更改为:

<a data-ajax="false" href="test.html?dosomething=1">test</a>

文档 - Linking Pages

  

默认链接行为:Ajax   要启用动画页面过渡,所有指向外部页面的链接(例如products.html)都将通过Ajax加载。为了不引人注意地执行此操作,框架解析链接的href以形成Ajax请求(Hijax)并显示加载微调器。所有这些都是由jQuery Mobile自动发生的。

     

如果Ajax请求成功,则将新页面内容添加到DOM,所有移动窗口小部件都会自动初始化,然后将新页面设置为带有页面转换的视图。