0

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

错误: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。

4

2 回答 2

0

我遇到了同样的问题,第二个 html 中的 javascript 没有运行。我通过添加 rel="external" 来强制卸载来解决这个问题。IE

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

希望这对你也有效。

于 2010-12-10T11:14:38.760 回答
0

Clement's answer helped, because there was no ajax call replacing your link.

A normal link (without rel=exteral) is being fetched with ajax call and only the body is taken and added to DOM of the current page.

That's why your js willnot be called.

All js must be linked to all pages in external files.

于 2010-12-13T18:57:50.370 回答