Как и другие, меня сводит с ума вводить заголовок на странице. Как сказал Энтони, проблема в том, что заголовок не является «основным» виджетом. Классы не добавляются jqm, делающим инъекцию.
Я не очень люблю добавлять пользовательский интерфейс в свои классы.
Мое (сумасшедшее?) Предложение - создать новую страницу (включая заголовок), а затем извлечь тег заголовка, включающий в себя всю церемонию пользовательского интерфейса класса, добавленную jqm. Я на самом деле не знаю, как это работает, но кажется, что это работает и кажется более реалистичным, чем добавление классов руками.
ниже приведен пример. Вам нравится?
$( '[data-role=page]' ).on( 'pageinit', function ( event, ui ) {
var sHeader = '<div data-role="header" id="tobechanged" data-position="fixed" data-id="CPL">';
sHeader += '<a href="#panelImageDetailLeft" data-icon="bars" data-iconpos="notext" data-shadow="false" data-iconshadow="false">Menu1</a>';
sHeader += '<h1>What a nice title </h1 >';
sHeader += '<a href="#panelImageDetailRight" data-icon="bars" data-iconpos="notext" data-shadow="false" data-iconshadow="false">Menu2</a>';
sHeader += '</div>';
//Create a temporary page to initialize all the ui-class
//var sId = core.misc.GUID_new();
var sId = "azerty";
$( '#body' ).append( '<div data-role="page" id="' + sId + '">' + sHeader + '<div data-role="content">content</div></div>' );
$.mobile.initializePage(); //do not know if needed
$( '#' + sId ).page(); //very important to let jqm generate the class ui
//console.log( "page():\n" + $( '#' + sId ).html() );
var $myHeader = $( '#tobechanged' );
//console.log( "tobechanged:\n" + $myHeader.html());
//clean the temporary page
$( '#' + sId ).empty();
$.mobile.initializePage(); //do not know if needed
//replace the id
//console.log( "myheader id: ... " + $myHeader.attr( "id" ) );
$myHeader.attr( "id", $( "#" + event.target.id ).attr("id") + "Header" );
//console.log( "myheader id: ... " + $myHeader.attr( "id" ) );
$( "#" + event.target.id ).find( "[data-role=header]" ).replaceWith( $myHeader );
}); * * 1 010