我正在尝试使用JavaScript动态更改标题。我正在使用单击事件中使用ID的名称。问题是它仅向我显示了仅在e sec的标题,然后在更改页面后的标题消失了。
<div data-role="main" id="page-content-ajax" class="ui-content jqm-content jqm-fullwidth">
<ul data-role="listview" data-inset="true">
<li class="li-el"><a href="flow/movements/movements.php" id="Movements">Movements</a></li>
</ul>
</div>
<script>
$(document).ready(function() {
$("#page-content-ajax").on('click', '.li-el', function() {
var search_r = $('a', this).attr('id');
$("#title-header").html(search_r); // just to check it works
});
});
</script>
您需要在外部页面完全加载到DOM并创建后收听pagecontainerbeforetransition
。另外,您需要定义一个拥有新 title 的全局变量,才能从任何函数访问它。
var title = '';
将click
绑定到主页pagecreate
上的ListView项目,即#HomePage
。
$(document).on("pagecreate", "#HomePage", function () {
$("li a").on("click", function () {
title = $(this).attr("id");
});
});
更新 pagecontainerbeforetransition
上的标题。您可以使用其他事件,但是在显示页面期间会发生更改,这对用户来说可能很明显。
ui.toPage
对象包含即将显示的页面数据。它用于在其中找到标题以定位其' title 。
请注意,您只想更改#HomePage
以外的其他页面的标题,因此,我使用.not()
选择器排除#HomePage
。
$(document).on("pagecontainerbeforetransition", function (e, ui) {
$(".ui-header .ui-title", $(ui.toPage[0]).not( $("#HomePage") ) ).text(title);
});
演示
我认为,如果您想留在该页面中,则需要在代码中使用Ajax帖子。.AJAX示例