ここで重要なのは、属性を#header
divに追加する時間です。pagebeforecreateイベントにバインドすることをお勧めします。このようにして、JQMがページを初期化する前に属性を追加します。すなわち
$(document).on('pagebeforecreate', function(){
$("#header").attr("data-role","header");
});
これが実際の例ですhttp://jsfiddle.net/codaniel/wJdvK/1/
これがドキュメントからの引用です。
pagebeforecreate
ほとんどのプラグインの自動初期化が行われる前に、初期化されるページでトリガーされます。
$( '#aboutPage' ).live( 'pagebeforecreate',function(event){
alert( 'This page was just inserted into the dom!' );
});
pagebeforecreateにバインドすることで、jQueryMobileのデフォルトウィジェットが自動初期化される前にマークアップを操作できることに注意してください。たとえば、HTMLソースではなくJavaScriptを介してデータ属性を追加したい場合、これは使用するイベントです。
$( '#aboutPage' ).live( 'pagebeforecreate',function(event){
// manipulate this page before its widgets are auto-initialized
});