0

ボタン付きのフォームがある index.html ページ (jQuery Mobile で構築された Web サイト) に移動すると、この奇妙な問題が発生します。ボタンを複数回クリックすると、アラートが生成されます (ボタンが機能している) また、main.html という別のページに移動します。ボタンをクリックするとアラートが表示され、別のページにも移動します。ここで、main.html に移動してから index.html に戻り、ボタンをもう一度クリックしても、アラートは生成されず、main.html ページにも戻りません。

ボタンには次のコードがあります。

    $(document).ready(function() {    
     //event handler for submit button
     $("#btnSubmit").click(function () {
          alert('fdfs');
          window.location.replace("main.html");
          return false;
    });
});

要約:ボタンをクリックするとアラートが生成され、main.html に移動しますが、このボタンを使用してページに戻ると、アラートもページの変更も行われません..

ANWSER: 代わりに:

window.location.replace("main.html");

私が使用した:

$.mobile.changePage('main.html');

これは、Jquery Mobile を使用しているためです。

ナビゲーションに関する追加情報についても、Valjas に感謝します。

4

2 に答える 2

2

window.location.replace()@jackwandersが言ったように、使用は間違いです。

この変数を使用すると、ブラウザー (または PhoneGap) の履歴に登録されていない HTTP 要求が送信されます。index.htmlをクリックしても、アプリは内部にあると認識し#btnSubmitます。

解決策は、別の関数を使用することです。window.location.href = "main.html"

また、document.ready関数内にバインディングを記述する必要はありません。これは、ページがロードされたらすぐにアクションを実行したい場合にのみ役立ちますが、ユーザーがリンクをクリックするのをさらに待つため、必要ありません。

于 2012-08-07T03:18:37.630 に答える
2

window.location.replace現在のファイルの HTML を、リンク先のファイルの HTML に置き換えるものを使用しています。window.location.href代わりに、他のページに移動する whichを使用する必要があります。

詳細はこちら: http://www.w3schools.com/jsref/obj_location.asp

- アップデート -

とはフォーマットが異なりますwindow.location.replace

window.location.href = 'main.html';

それでも問題が解決しない場合は、次を試してください。

window.open('main.html', _blank);

これにより、新しいタブでページが開きます。

- アップデート -

jQuery Mobile を使用しているため、jQuery クリック バインドを使用するのではなく、jQuery Mobile API を使用する必要があります。

役立つはずのいくつかのページを次に示します。

http://jquerymobile.com/demos/1.0a4.1/docs/pages/link-formats.html

http://jquerymobile.com/demos/1.0a4.1/docs/pages/link-formats.html#docs-navmodel.html

http://jquerymobile.com/test/docs/pages/page-navmodel.html

于 2012-08-07T03:19:28.497 に答える