2014-01-15 140 views

回答

3

动态地添加工具栏(页眉/页脚)的方法很多。此外,jQuery Mobile 1.4提供内部外部工具栏,它取决于你想要一个工具条为所有页面,或为每个页面不同。

如果你想要一个内部工具栏,将它添加到当前页面(活动页面),如果你想要一个外部一个,把它添加到pageContainer。此外,您需要使用.toolbar().enhanceWithin()来增强它。

加入工具栏动态后,您重置当前页面的高度动态添加,当他们增加额外的填充。 $.mobile.resetActivePageHeight()将删除多余的填充。

下面演示了如何将标头添加到当前页面。

/* get active page */ 
var page = $.mobile.pageContainer.pagecontainer("getActivePage"); 

/* add header */ 
$(".add").on("click", function() { 
    $(page).append($("<div/>", { 
     "data-role": "header", 
      "data-position": "fixed" 
    }).append($("<h1/>").text("Header"))).enhanceWithin(); 

    /* reset height */ 
    $.mobile.resetActivePageHeight(); 
}); 

/* change title */ 
$(".change").on("click", function() { 
    $(".ui-header .ui-title").text("new title"); 
}); 

Demo


要添加外部工具栏。

/* get pageContainer */ 
var pagecontainer = $.mobile.pageContainer; 

$(".add").on("click", function() { 
    $(pagecontainer).append($("<div/>", { 
     "data-role": "header", 
      "data-position": "fixed", 
      "data-theme": "a" 
    }).append($("<h1/>").text("Header"))).enhanceWithin(); 

    /* reset height */ 
    $.mobile.resetActivePageHeight(); 
}); 

Demo

+0

非常感谢您为您的广泛的答案。如果只需要标题本身(只是标题中的h1标签的内容)需要更改,您是否会如此善意地解释要做什么?我试过改变h1的文本,而且这样做的头上的工作,但不会改变标题的内容,jqm似乎自动注入。 – doberkofler

+0

@materialdreams欢迎您。要改变标题,使用'$(“。ui-header .ui-title”)。text(“new title”);'。它在第一部分代码和演示中进行了解释。 – Omar

+0

再次感谢。请问我可以在jqm文档中找到这种信息? – doberkofler