6

jqm フレームワークを使用して webapp を構築しておりpageshow、jQuery ウィジェット k3dcarousel を含めるときに関数を使用しようとしています。data-role="page"問題のページでは、 div の下にスクリプトがあります。

$("#page-about").live(
    "pageshow",
    function (event) {
        $('#k3dCarousel_portrait').k3dCarousel();
    }
);

JS 関数をロードするには、リンクを 2 回クリックする必要があるようです。この関数を間違って使用していると思われます。$("#page-about").die(); また、関数の下にある関数を使用しない場合 pageshow、リンクをクリックして戻ってからもう一度リンクをクリックすると、スクリプトが複数回読み込まれます。

pageshowロジックを間違って使用していますか? 私がやろうとしていることを達成するためのより良い方法はありますか: このページをモバイルフレームワークに AJAX します。

これはかなり具体的な質問であることは理解していますが、これに対する一般的な答えがあることを願っています。

ヘルプがあれば、さらにコードを貼り付けることができます。

お時間をいただきありがとうございます。

4

1 に答える 1

7

イベントにバインドしているためpageshow、ページを表示するたびに匿名関数が起動します。ページの最初のビューでのみコードを呼び出したい場合は、イベントにバインドするか、コードpagecreate/pageinitに k3dCarousel が存在するかどうかを確認します。pageshow

$("#page-about").live(
    "pageshow",
    function (event) {
        //check for the existence of HTML within the container element
        if ($('#k3dCarousel_portrait').html().length == 0) {
            $('#k3dCarousel_portrait').k3dCarousel();
        }
    }
);

すべての jQuery Mobile 固有のイベントの説明は次のとおりです: http://jquerymobile.com/demos/1.0rc3/docs/api/events.html

于 2011-11-15T20:43:58.733 に答える