簡體   English   中英

jQuery Mobile動態添加的頁面沒有主題

[英]JQuery Mobile dynamically added pages are unthemed

我目前正在嘗試從JSON文件動態生成頁面。 我可以生成頁面,但是當我以后訪問頁面時,該頁面不是主題,只保存了后退按鈕。 這是我用於生成頁面的代碼:

function generateClassPage(dept, cNumber) {
    $("body").append('<div data-role="page" data-control-title="' + majorArray[dept] + ' ' + cNumber + '" id=' + dept + 'p' + cNumber + '>');
    $('#' + dept + 'p' + cNumber).append('<div data-theme="b" data-role="header"><a data-role="button" data-inline="true" data-direction="reverse" data-rel="back" data-transition="slidedown" data-theme="e" href="#page2" data-icon="arrow-l" data-iconpos="left" class="ui-btn-left">Back</a>');
    $('#' + dept + 'p' + cNumber).append('<h3>' + majorArray[parseInt(dept)] + ' ' + cNumber + '</h3>');
    $('#' + dept + 'p' + cNumber).append('</div><div data-role="content">');

    $('#' + dept + 'p' + cNumber).append('<h3>' + pageParameterArray.name + '</h3>');
    $('#' + dept + 'p' + cNumber).append('<div data-controltype="textblock"><p><span><strong>Units</strong>: ' + pageParameterArray.units + '</span></p>');

    $('#' + dept + 'p' + cNumber).append('<p><span><strong>Pre-Requisites</strong>:&nbsp;</span></p>');
    $('#' + dept + 'p' + cNumber).append('<ul>');

    alert(pageParameterArray.prerequisites.length);

    if (pageParameterArray.prerequisites.length > 0) {
        for (var i = 0; i < pageParameterArray.prerequisites.length; i++) {
            $.ajax({
                url: 'http://majors.uclastudentmedia.com/classes/',
                type: 'GET',
                crossDomain: true,
                data: {
                    pk: pageParameterArray.prerequisites[i]
                },
                dataType: 'json',
                success: function (json_3) {
                    alert("JSON Length = " + json_3.length);
                    $('#' + dept + 'p' + cNumber).append('<li><span>' + majorArray[parseInt(json_3[0]['fields']['department'])] + ' ' + json_3[0]['fields']['class_number'] + '</span></li>');
                }
            });
        }
    }    

    $('#' + dept + 'p' + cNumber).append('<li><span>n/a</span></li>');
    $('#' + dept + 'p' + cNumber).append('</ul>');

    $('#' + dept + 'p' + cNumber).append('</div></p></div></div></div>');
    alert("Page created!");
    $('#' + dept + 'p' + cNumber).page();
}

之后檢查HTML頁面時,已正確添加了div並可以對其進行訪問,但它缺少所有JQuery移動主題元素。 我需要做些什么來刷新主題嗎? 謝謝!

是的,您必須在HTML到位后觸發create事件。 這樣的事情應該可以解決問題:

$(document).trigger('create');

請注意,這需要在所有HTML創建完畢后運行,否則它將無法正常工作。

您是否嘗試過為要添加的頁面div分配id屬性,然后執行以下操作:

$("#pageid").trigger('create');

使用您分配的ID代替#pageid直接在該div上

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM