我正在努力学习使用Phonegap和JQM进行开发。我的应用程序非常简单:它加载一个jqm ajax调用的人员列表,如果点击一个人,它应该带你到另一个页面。
我试图以多种方式加载第二页:
1.-加入以下
$.mobile.changePage($('myDiv'));
2.-加入以下
$.mobile.changePage('myPage.html');
3.-在链接标签内使用正常的href
唯一有效的解决方案是最后一个解决方案。所以我真的想用JQM changePage来做,它允许我放一些过渡动画,当我按下链接我总是得到一个“
E / Web控制台(10922):未捕获的SyntaxError:意外的标识符 file:///android_asset/www/index.html:2“ERROR
任何想法?
编辑:我能够使用第三种方法(使用锚标记内的href)。经过一些测试后,我确信只有在我使用锚点中的onclick事件调用方法时才会出现错误。有人知道为什么会这样吗?
答案 0 :(得分:1)
答案 1 :(得分:0)
$ .mobile.changePage不会将另一个html加载到视图中。它扫描你的链接你给的html中的html,获取它上面的第一个jqm'页面'并将其添加到dom(而不是整个html) 如果这不是您打算做的,并想将完整的something.html加载到dom中那么你将不得不使用
navigator.app.loadUrl("file:///android_asset/www/something.html")
或
windows.location.href("file:///android_asset/www/something.html")
答案 2 :(得分:0)
解决。只有当我使用“onclick”事件按脚本更改页面时才出现错误。通过使用jquery live函数并监听“click”事件,一切正常。我仍然没有找到onclick事件给我错误的原因,如果有人知道它会很高兴知道。感谢所有试图提供帮助的人。
对于想要代码的人:
创作时的HTML:
<div id='listPage' data-role="page">
<div data-theme="e" data-role="header">
<h1 >Anagrafica Tigre</h1>
</div><!-- /header -->
<ul id='anagList' data-theme="b" data-role="listview" data-inset="true" data-filter="true">
</ul>
<div id='schedaPage' data-role="page">
<div id='schedaTitle' data-theme="e" data-role="header">
<h1>Anagrafica Tigre part 2</h1>
</div><!-- /header -->
<ul id='schedaList' data-theme="b" data-role="listview" data-inset="true">
<li id='dataNascita'>
<h3><strong>Data di nascita</strong></h3>
<p></p>
</li>
<li id='luogoNascita'>
<h3><strong>Luogo di nascita</strong></h3>
<p></p>
</li>
<li id='email'>
<h3><strong>Email</strong></h3>
<p></p>
</li>
ws通话后的人口脚本:
function appendToList(theId,data){
var myList = $('#anagList');
var newItem = document.createElement('li');
var newId = document.createElement('input');
newId.setAttribute("type","hidden");
newId.value=theId;
var newLink = document.createElement('a');
//newLink.setAttribute("onclick","setPage("+newId+")"); //THIS IS THE EVENT THAT DIDNT WORK
newLink.setAttribute("href","javascript:void(0)");
newLink.setAttribute("id",theId)
//newLink.setAttribute("href","schedaAnag.html");
newLink.setAttribute("data-role","button");
newLink.innerHTML=data;
newItem.appendChild(newId);
newItem.appendChild(newLink);
myList.append(newItem);
if(theId==149){
$('#anagList').listview('refresh');
}
}
为DID工作的点击监听器加载页面后的脚本:
$('#anagList a').live("click",(function(){
var theId=$(this).attr('id');
callWS(parseInt(theId),parseInt(theId)+1,'scheda');
//$('#schedaPage').listview("refresh");
$.mobile.changePage($('#schedaPage'));
}));
答案 3 :(得分:0)
我的Phonegap + jqMobile应用程序也收到此错误消息,但原因完全不同。
我在javascript文件中动态加载,并将其声明为:
<script id="sqlPlugin" src="" type="text/javascript"></script>
Chrome没有对此发表评论,但在Android上它给了我标题中的错误消息。只需删除src=""
属性即可解决问题。