Javascript Bind(';pageinit';)调用方法失败

Javascript Bind(';pageinit';)调用方法失败,javascript,jquery,Javascript,Jquery,我试图将一个页面初始化事件从afaik,jquerymobile绑定到一个方法,这样我就可以设置我的头了,这就完成了,因为以后我希望动态地设置它。 但我的事件甚至不会触发:'-( 任何帮助都将不胜感激 $('#mapmode').bind('pageinit', function(event) { initPageHeader(); }); function initPageHeader(){ alert('oldhtml'); var oldhtml=document

我试图将一个页面初始化事件从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;
}
$('#mapmode').bind('pageinit',函数(事件){
initPageHeader();
});
函数initPageHeader(){
警报('oldhtml');
var oldhtml=document.getElementById('header').innerHTML;
document.getElementById('header').innerHTML=“”;
var html=oldthml+“”+
''+
''
document.getElementById('header')。innerHTML=html;
}

在设置警报之前,您需要有
警报(oldhtml);
。将其移动到
文档上方。getElementById('header')。innerHTML=html;


正如下面jeemusu所建议的,您可以了解更多关于bind的信息,因为bind已被弃用。

如果您想绑定到
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>';
    });
}
函数initPageHeader()
{
$(“#header”).html(函数(索引、原始标记){
返回原始标记
+ ''
+ '';
});
}

警报(oldhtml)在
var oldhtml
之前。感谢inkbug,这不是问题:)将其更改为“oldhtml”。仍然没有触发,但是下面有很多想法。现在就挖进去吧。绑定也贬值了。试着改用
.on()
。这是不正确的绑定使用on,不是吗
$(文档)
用于替换
.live()
功能。@Jeemusu,您的注释中的代码相当于
bind()
,而不是
delegate()
live()
。请参阅。这是否会覆盖我的页面的正常启动功能?因为现在它只启动这个方法,而不做其他任何事情?@Anders,所以它不应该覆盖任何其他
pageinit
处理程序。我答案中的第一个代码片段将在每个页面上运行,第二个代码片段将仅在
#mapmode
初始化时运行。非常棒的最后一个函数:D谢谢!顺便说一句,你知道有没有办法在页眉上设置一个最大高度,并挤压图像以适应?