0

afaik、jquerymobileからのページ初期化イベントをメソッドにバインドしようとしています。これにより、ヘッダーを設定できます。これは、後で動的に設定したいためです。しかし、私のイベントはトリガーさえしません:'-(どんな助けもいただければ幸いです。

$('#mapmode').bind('pageinit', function(event) {
    initPageHeader();
});

function initPageHeader(){
    alert('oldhtml');
    var oldhtml=document.getElementById('header').innerHTML;
    document.getElementById('header').innerHTML="";
    var html = oldthml + '<a href="#" data-rel="back" data-role="button" ><img'+
    ' align="middle"src="../images/back.png" alt="back" vspace="2"/></a><h1>'+
    '<img align="middle"src="../images/main_header.png" alt="logo" vspace="2"/>'+
    '</h1><a href="#first" data-role="button" data-inline="true">'+
    '<img align="middle"src="../images/home.png" '+
    'alt="picture to take you to the first page"/></a>'
    document.getElementById('header').innerHTML=html;
}
4

2 に答える 2

1

pageinitイベント委任を使用する代わりにバインドする場合は、ドキュメント自体でそれを行う必要があります。

$(document).on("pageinit", function(event) {
    initPageHeader();
});

この動作が#mapmodeページに固有のものである場合は、イベントの委譲が有効です。

$(document).on("pageinit", "#mapmode", function(event) {
    initPageHeader();
});

ちなみに、jQuery を適切に使用すると、イベント ハンドラーを短くして読みやすくすることができます。

function initPageHeader()
{
    $("#header").html(function(index, originalMarkup) {
        return originalMarkup
            + '<a href="#" data-rel="back" data-role="button">'
            + '<img align="middle" src="../images/back.png" alt="back" '
            + 'vspace="2"/></a><h1><img align="middle" '
            + 'src="../images/main_header.png" alt="logo" vspace="2"/>'
            + '</h1><a href="#first" data-role="button" data-inline="true">'
            + '<img align="middle"src="../images/home.png" '
            + 'alt="picture to take you to the first page"/></a>';
    });
}
于 2012-07-13T09:29:22.777 に答える
0

alert(oldhtml);あなたはそれを設定する前にあなたを持っている必要があります。上に移動しますdocument.getElementById('header').innerHTML=html;

以下のjeemusuが示唆しているように、bindが非推奨になっているため、 jQuery.onについて詳しく知ることができます。

于 2012-07-13T09:28:12.253 に答える