我有一个带有简单选择菜单的Jquery Mobile页面。
<div class="selectMenuContainer">
<div data-role="fieldcontain">
<label for="selectmenu" class="select">Heroes:</label>
<select name="selectmenu" id="heroSelectMenu" class="heroSelectMenu" >
<option value="0">Choose One...</option>
<option value="Option 1">Option 1</option>
<option value="Option 2">Option 2</option>
</select>
</div>
</div>
在事件pageinit
上,我从选择菜单中使用jQuery来.remove()
所有内容,然后我动态添加许多选项。当然,我不会忘记刷新选择菜单。
function populateHeroNames(){
//populate hero select item
$('#heroSelectMenu').empty();
$('#heroSelectMenu').append('<option value="0">Please Choose...</option>');
for(var i=0;i<heroNameLength;i++){
if(heroName[i]){
var currentHeroName = heroName[i];
}else{continue;}
$('#heroSelectMenu').append('<option value="'+i+'">'+currentHeroName+'</option>');
}
//refresh hero select item
var heroSelectMenu = $("#heroSelectMenu");
heroSelectMenu.selectmenu("refresh");
console.log('heroes added!');
}
我的问题是我无法成功导航到以编程方式创建的选项的其他页面。我可以从硬编码选项中做到这一点。当我点击硬编码选项时,我可以正常使用$.mobile.changePage()
。但是从编程创建的选项中,我导航到的页面将消失,然后返回初始页面。
在测试中,当我点击后退按钮时,我实际上是去了我的目的地。所以很明显JqueryM已经导航到了目的地,但后来出于某种原因又回来了。
我怀疑原因是Jquery Mobile的奇怪DOM加载。有什么东西我需要刷新......或者可能会阻止刷新?只需导航到页面......并留在那里吧!