0

私は現在、jQuery Mobile に基づくアプリに取り組んでいます。その瞬間はとても光沢があり美味しそうに見えたので選びましたが、作業を重ねるにつれて、複数のことに行き詰まります.

すべてのページを個別に作成し、正常に動作していましたが、相互にリンクした後、いくつかの問題が発生し始めました。

ページごとに、さまざまなスクリプトとサードパーティのライブラリをロードする必要があります。いくつかの調査の後、data-role="page" の ID を追加して .delegate() でロードすることにしましたが、1 つの問題が発生するので、質問:

1) 別のページに移動するときに、ロードされているすべてのスクリプトをアンバインド/キル/クリア/削除する方法は?

問題は、「ページ2」に移動して次のことを行うときです。

$(document).delegate('#page-2', 'pageinit', function() {

...do something

});

「ページ1」または「ページ3」に移動した後、 #page-2 .deligate() でロードされたものはDOMに残り、別のページのスクリプトと競合します。


PS 乱雑ですが、ファイル全体はここで見ることができます - http://cloud.ignatynikulin.com/011R3x2k401i271N420N


PPSもう1つの質問の簡単な更新:

条件が .deligate() pageInit 内で機能しない場合と、それを機能させる方法は?


ありがとうございました

4

2 に答える 2

0

完全な答えではありませんが、いくつかのページを別々のファイルに移動できますか?私の場合、リストに表示されているアイテムを編集する場合は、個別のaspxファイルを使用しています。例えば、

<ul data-role="listview">
  ...
  <li>
    <a href="ItemPage.aspx?Id=1" rel="external">Item1</a>
  </li>
  ...
</ul>
于 2012-05-16T10:43:11.063 に答える
0

あなたの質問は、読み込まれたスクリプトを DOM から削除する方法に関するものだと思います。

同じ行に既存の質問が見つかりました: Is the javaScript not part of the DOM?

于 2012-05-16T10:53:39.440 に答える