1

これは私のgithubリンクで、アプリの実行を確認できます。localStorageに保存されている情報をシリアル化して表示することができました。(フォームに何かを挿入した後、display-dataボタンをクリックします)。

jqm.jsファイルには、私が思いついたすべてのコードが含まれています。リストからアイテムをクリックすると(jqm.jsファイルのoutputData関数を参照)、クリックしたアイテムにリンクする動的ページを追加して、その特定のアイテムに関する詳細情報を表示したいと思います。

皆さん、全体を「書き直す」ためのたくさんの方法を思いつく前に、現在のコードの解決策(もしあれば)が欲しいのですが。アプリケーション全体を最初から書き直すのではなく、可能であればロジックに取り組みたいと思います。再生するときにこの詳細を考慮していただきありがとうございます。この領域内のアイデアや提案は大歓迎です。よろしくお願いします。

4

1 に答える 1

1

私はあなたのためにいくつかのアイデアを持っています。

最初に、リストビュー要素をクリックした後に動的ページを作成する方法の例を示しました:http: //jsfiddle.net/Gajotres/nsfkx/

HTML:

<!DOCTYPE html>
<html>
<head>
    <title>jQM Complex Demo</title>
    <meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; minimum-scale=1.0; user-scalable=no; target-densityDpi=device-dpi"/>
    <link rel="stylesheet" href="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.css" />
    <script src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script>    
</head>
<body>
    <div data-role="page" id="index">
        <div data-theme="a" data-role="header">
            <h3>
                First Page
            </h3>
        </div>

        <div data-role="content">
            <ul data-role="listview" data-theme="a">
                <li data-id="1"><a>Dynamic page 1</a></li>
                <li data-id="1"><a>Dynamic page 2</a></li>
                <li data-id="1"><a>Dynamic page 3</a></li>
            </ul>    
        </div>

        <div data-theme="a" data-role="footer" data-position="fixed">

        </div>
    </div>    
</body>
</html>   

JS:

$(document).on('pagecreate', '#index', function(){       
    $(document).on('click', '[data-role="listview"] li', function(event) {
        if(event.handled !== true) // This will prevent event triggering more then once
        {   
            console.log('click');            
            event.handled = true; // click event is handled, dont bind it again

            var nextPageId = parseInt($('body [data-role="page"]').length)+1;
            $('[data-role="page"]').last().after('<div data-role="page" id="article'+nextPageId+'"><div data-role="header" data-theme="b" data-position="fixed" data-id="footer"><h1>Articles</h1><a href="#" data-rel="back" data-role="button" data-theme="b" class="ui-btn-left">Back</a></div><div data-role="content"><p>Article '+nextPageId+'</p></div><div data-role="footer" data-theme="b" data-position="fixed" data-id="footer"><h1>Footer</h1></div></article>');
            //console.log($('body').html());
            //$('#article'+nextPageId).trigger('pagecreate');
            $.mobile.changePage('#article'+nextPageId, {transition: "slide", reverse: false}, true, true); 
        }            
    });   
});

次に、動的コンテンツを作成するため、ドキュメントの準備を放棄し、jqueryMobileページイベントを修正するように切り替える必要があります。

jQuery Mobileページのイベントについて詳しく知りたい場合は、この記事を参照するか、ここで見つけください

于 2013-03-27T16:03:59.880 に答える