.jsファイルは、リンクされたHTMLファイルから呼び出すことができませんでした - jQueryモバイル

StackOverflow https://stackoverflow.com/questions/4398978

質問

jqueryモバイルフレームワークを使用しています。それぞれ2つのボタンを備えた2つのHTMLファイルがあります。 1つのボタンをクリックすると、他のHTMLファイルに移動します。各HTMLファイルにロードされたJavaScriptは、HTMLファイルのクリックイベントを処理します。ここで問題は、最初のHTMLファイルからナビゲートされた2番目のHTMLファイルからロードされた.jsは呼び出されませんでした。エラーが表示されます。

エラー:p.attr( "href")は未定義です
ソースファイル:file:///users/aspire/development/jquery%20mobile/sample/jquery.mobile-1.0a2.min.js
ライン:96

どうしたの?

編集:test.html

html-tags。 headertagの下

    <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>

2番目のHTMLで。 test2.html

html-tags。 headertagの下

    <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は呼び出されません。

役に立ちましたか?

解決

同じ問題に遭遇しましたが、2番目のHTMLのJavaScriptは実行されません。 rel = "external"を追加して強制的にアンロードを追加することで、問題を解決しました。すなわち

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

これもあなたのために働くことを願っています。

他のヒント

クレメントの回答は、リンクを置き換えるAjaxコールがなかったため、助けました。

通常のリンク(rel = exteralなし)がajaxコールでフェッチされており、ボディのみが現在のページのDOMに追加されます。

それがあなたのJSが呼ばれない理由です。

すべてのJSは、外部ファイル内のすべてのページにリンクする必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top