4

これは私のスキーマですpage.html

<head>
    <script... jquery
    <script... jquery.mobile
    <scripts... imagemapster, autocomplete, etc...
</head>
<body>
    <div page1..
    </div>
    <div page2..
    </div>
    <my script with functions and initializations...
</body>

私の場合、イベント<script>へのバインディングがいくつかあります。page1.pageshowページ全体を直接ロードして、すべてのスクリプトが最初にロードされたことを確認すると、スクリプトも正しくロードされ、問題なく機能します。にpage2戻ってもpage1、イベントが発生します。

しかし、別のページに移動したり、JM組み込みのajax関数を使用して同じページを更新したりすると、スクリプトがロードされないか、pageshowonpage1が起動されません。

スクリプトをの最後page1、または先頭に配置しようとしましたが、まだリロードで機能していません。また、関係するdivの前に配置することもできません(すべてのページの多くのタグにいくつかのイベントが添付されています)-pageshow見逃しただけでなく、readypageload

申し訳ありませんが、コード全体を表示することはできませんが、どのように作業して問題を見つけようとしますか?

4

1 に答える 1

0

ここのスクリプトは、ドキュメントの読み込み時に一度だけ起動されます

<head>
    <script... jquery
    <script... jquery.mobile
    <scripts... imagemapster, autocomplete, etc...
</head>
<body>
    <div page1..
      <script with the (page1).on(pageshow event handler)>
    </div>
    <div page2..
      <script with the (page2).on(pageshow event handler)>
    </div>
    <script here fired only once at document load>
</body>

1 つのページを使用してすべての実際のページを含めるため、ページの遷移ごとに常に起動されると期待するのは非常に間違っています。通常、各ページ スクリプトは div[data-role=page] 内にコーディングされます。各インライン pageshow イベント ハンドラのセレクタとしてページ ID を使用していることを確認してください。

于 2013-03-05T04:48:32.180 に答える