【发布时间】:2013-05-11 18:26:06
【问题描述】:
在新的页面加载时,代码运行良好并且会显示正确的信息,但如果您向后导航并重试,它会显示第一次点击时的信息。首先,这是代码,我将解释我所拥有的......
$(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" 的 div),名为 #months,这是包含我要从中选择的项目列表的页面,以及 #detail 这是我要根据用户的选择填充的页面名单。我的列表视图的 id 是#listOfHolidays,而保存列表中每个项目值的array 称为holidayNames。然后,我在名为 #hi 和 #ho 的 div 的详细信息页面中显示此基本信息(其中一些将被更改,我只是想测试解决此问题的方法)。我还在详细信息的标题中启用了后退按钮。
就像我说的,当我重新加载此内容时,正确的假日名称和索引号会显示在我的详细信息页面中,但是当我使用后退按钮返回并重试时,它会使用相同的信息填充详细信息页面从第一个click。
我认为这是因为 jquery 正在使用 'pageinit' 初始化第二个 $(document).on() 函数中的详细信息页面,并且由于它是使用我选择的第一个索引和假日名称进行初始化的,所以它不需要再次初始化并在我单击另一个列表项时从第一个请求中提取数据。
这是我对正在发生的事情的模糊理解,所以请纠正我的错误并引导我朝着正确的方向前进!
谢谢!
【问题讨论】:
-
查看您的 HTML 会有所帮助
标签: javascript jquery dom jquery-mobile