在新的页面加载时,代码工作得很好并且会显示正确的信息,但是如果你向后导航并重试,它会显示第一次点击的信息。首先,这是代码,我将解释我所拥有的......
$(document).on('pageinit', '#months', function(){
$('#listOfHolidays').on('click', 'li', function () {
listIndex = $(this).index();
$.mobile.changePage('#detail');
});
});
$(document).on('pageinit', '#detail', function(){
console.log(listIndex);
$('#ho').text(holidayNames[listIndex]);
$('#hi').text('The index of the list item clicked is: ' + listIndex);
});
我有 2 个data-role="page"
名为的页面(带有#months
的 div),其中包含我要从中选择的项目列表,而 #detail 是我要根据用户从列表中的选择来填充的页面。我的列表视图的 id 是#listOfHolidays
,array
其中保存列表中每个项目的值的称为 holidayNames。然后,我在名为 #hi 和 #ho 的 div 的详细信息页面中显示此基本信息(其中一些将被更改,我只是想测试解决此问题的方法)。我还在详细信息的标题中启用了后退按钮。
就像我说的,当我重新加载这个时,正确的假日名称和索引号会显示在我的详细信息页面中,但是当我使用后退按钮返回并重试时,它会使用与第一个相同的信息填充详细信息页面click
.
我认为这是因为 jquery 正在用我选择的第一个索引和假日名称初始化第二个$(document).on()
函数中的详细信息页面'pageinit'
,因此它不需要再次初始化并从第一个请求中提取数据我单击另一个列表项。
那是我对正在发生的事情的模糊理解,所以请纠正我的错误并引导我朝着正确的方向前进!
谢谢!