我正在使用jQuery移动框架。我有2个HTML文件,每个文件每个都有两个按钮。单击一个按钮将导航到另一个HTML文件。每个HTML文件中加载的JavaScript将处理HTML文件中的单击事件。这里的问题是,从第二个HTML文件加载的.js无法从第一个HTML文件导航。它显示错误。

错误:p.attr(“ href”)未定义
源文件:file:///users/aspire/development/jquery%20mobile/sample/jquery.mobile-1.0a2.min.js
线:96

怎么了?

编辑:test.html

HTML标签。在头标签下

    <link rel="stylesheet" href="jquery.mobile-1.0a2.min.css" />
    <script src="jquery-1.4.4.min.js"></script>
    <script src="jquery.mobile-1.0a2.min.js"></script> 
       <script type="text/javascript">   
        $(function(){
            $('#test').click(function(){
                alert('This is a general button!');
            });
        });
       </script>
  <Bodytag>
    <div data-role="content">
    <div data-role="page">
        <a id="test" data-role="button" data-inline="true" data-theme="b">Click here</a>
        <a href="~Development/JQuery Mobile/sample/test2.html" data-role="button" data-inline="true" >Navigate to two</a>
    </div>
    </div>
</Bodytag>

在第二个HTML中。 test2.html

HTML标签。在头标签下

    <link rel="stylesheet" href="jquery.mobile-1.0a2.min.css" />
    <script src="jquery-1.4.4.min.js"></script>
    <script src="jquery.mobile-1.0a2.min.js"></script> 
       <script type="text/javascript">
        $(function(){
            $('#test2').click(function(){
                alert('This is a general button!');
            });
        });
       </script>
  <Bodytag>
    <div data-role="content">
    <div data-role="page">
        <a id="test2" data-role="button" data-inline="true" data-theme="b">Click here</a>
        <a href="~Development/JQuery Mobile/sample/test.html" data-role="button" data-inline="true" >Navigate to two</a>
    </div>
    </div>
</Bodytag>

当Test2.html在浏览器中分别打开时,它可以正常工作。即使返回test.html,也会给出相同的错误。 JavaScript未调用。即仅一次,当.html首次启动时,JavaScript工作正常。导航到另一页后,未调用JavaScript。

有帮助吗?

解决方案

我遇到了同样的问题,第二html中的JavaScript只是没有运行。我通过添加rel =“外部”来强制卸载来解决问题。 IE

<a href="test2.html?" id="test2" data-role="button" data-inline="true" data-theme="b" rel="external">Click here</a>

希望这也对您有用。

其他提示

克莱门特(Clement)的答案有所帮助,因为没有Ajax呼叫更换您的链接。

正常的链接(不带RER =外部)被AJAX调用获取,并且仅将主体添加并添加到当前页面的DOM中。

这就是为什么您的JS Willot被称为。

所有JS必须链接到外部文件中的所有页面。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top