0

私のテーマは、以下のコードで作成された動的ページで実行されていません。最初のメニューページで動作し、他のすべてのページには、私が設定したテーマではなくデフォルトのテーマがありますsiteData.theme

どうすればこれを設定できますか?

    var siteData = build;
    $(this).find('[data-role="header"] h3').html(siteData.name);
    $.mobile.activePage.find('[data-role=header] h3').html(siteData.name);
    $('div[data-theme]', '#index').data('theme', siteData.theme);

    //reset all the buttons widgets
    $.mobile.activePage.find('.ui-btn')
        .removeClass('ui-btn-up-a ui-btn-up-b ui-btn-up-c ui-btn-up-d ui-btn-up-e ui-btn-hover-a ui-btn-hover-b ui-btn-hover-c ui-btn-hover-d ui-btn-hover-e')
        .addClass('ui-btn-up-' + $('div[data-theme]', '#index').data('theme'))
        .attr('data-theme', $('div[data-theme]', '#index').data('theme'));

    //reset the header/footer widgets
    $.mobile.activePage.find('.ui-header, .ui-footer')
        .removeClass('ui-bar-a ui-bar-b ui-bar-c ui-bar-d ui-bar-e')
        .addClass('ui-bar-' + $('div[data-theme]', '#index').data('theme'))
        .attr('data-theme', $('div[data-theme]', '#index').data('theme'));


    //reset the page widget
    $.mobile.activePage.removeClass('ui-body-a ui-body-b ui-body-c ui-body-d ui-body-e')
        .addClass('ui-body-' + $('div[data-theme]', '#index').data('theme'))
        .attr('data-theme', $('div[data-theme]', '#index').data('theme'));


    $.each(siteData["pages"], function (i, v) {



        if (!$('#' + v["id"]).length) {


            // Build nav.
            $.mobile.activePage.find('[data-role=content]').append('' +
                '<a href="#' + v["id"] +
                '" data-role="button">' + v["name"] +
                '</a>').trigger('create');


            var components = {};




            var newPage = $("<div data-role='page' id='" + v["id"] +
                "'><div data-role=header><a data-iconpos='left' data-icon='back' href='#' data-role='button' " +
                "data-rel='back'>Back</a>" +
                "<h1>" + v["name"] + "</h1>" +
                "</div>" +
                "<div data-role=content>" + pagecontent +
                "</div>" +
                "<div data-role='footer'>" +
                "<h4>" + v["name"] + "</h4>" +
                " </div>" +
                "</div>");

            newPage.appendTo($.mobile.pageContainer);



        }

    });


});
4

1 に答える 1

1

siteData.themeコードから、テーマ名、つまり「b」を保持しているように見えるので、次を追加できます。

$('[data-role=page]').page({
        theme: siteData.theme
    });

あなたのスクリプトに。

ただし、ヘッダーとフッターはデフォルトのテーマから変更されません。もちろん、siteData.theme の内容に応じてnewPage作成時に追加することもできます。data-theme=siteData.theme

于 2013-05-01T08:33:59.473 に答える