2012-03-06 55 views
1

我試圖學習使用Phonegap和JQM進行開發。我的應用程序非常簡單:它通過jqm ajax調用加載人員列表,如果有人被點擊,它應該帶你到另一個頁面。phonegap + jqm錯誤:「Uncaught SyntaxError:意外的標識符在文件:///android_asset/www/index.html:2」

我已經嘗試了很多方法來加載第二頁:

1.-通過添加以下

 $.mobile.changePage($('myDiv')); 

2:通過添加以下

$.mobile.changePage('myPage.html'); 

3.-通過使用鏈接標籤內的正常href

唯一可行的解​​決方案是最後一個,其中f嘴脣嚴重。所以,我真的想與JQM changePage,這讓我把一些過渡動畫做到這一點,當我按下鏈接我總是得到了「

E/Web Console(10922): Uncaught SyntaxError: Unexpected identifier at file:///android_asset/www/index.html:2" ERROR

任何想法

編輯:?我能夠使它只與第三種方法一起工作(使用錨標籤中的href)經過一些測試後,我確信只有當我使用錨中的onclick事件調用方法時纔會出現錯誤。這是發生了什麼?

+0

您的頁面是否爲其設置了頁面的數據角色? – 2012-03-06 10:30:52

+0

是的它(至少在div負載的例子)。但在我看來,錯誤是由phonegap(由於拋出的錯誤)創建的。 – Th0rndike 2012-03-06 10:37:58

+0

您使用的是哪個版本的Phonegap? – 2012-03-06 10:38:51

回答

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'); 
    } 

} 

腳本頁面加載的點擊監聽器沒有工作:

$('#anagList a').live("click",(function(){ 
     var theId=$(this).attr('id'); 
     callWS(parseInt(theId),parseInt(theId)+1,'scheda'); 
     //$('#schedaPage').listview("refresh"); 
     $.mobile.changePage($('#schedaPage')); 

    })); 
+0

如果它與活動查詢一起工作,並且不點擊,那麼看起來您正在註冊回調,當按鈕在DOM中尚不可用時。你可以發佈腳本代碼? – dhaval 2012-03-07 09:20:16

0

$ .mobile.changePage不會加載另一個html到視圖。它掃描HTML鏈接你給的HTML,得到第一個jqm'頁面'並將其添加到dom中(而不是整個html) 如果這不是你想要做的,並且想將全部東西加載到dom中,那麼你將不得不使用

navigator.app.loadUrl("file:///android_asset/www/something.html") 

windows.location.href("file:///android_asset/www/something.html") 
+0

頁面(您稱之爲something.html)包含一個帶有數據角色頁面的DIV。根據你的答案,它應該加載該DIV。相反,它給了我我提到的錯誤。 – Th0rndike 2012-03-06 11:37:44

+0

嗯,我明白了。你可以做的是讓你的div在同一個頁面,只是改變任何jquery轉換的div div – 2012-03-06 12:09:49

1

我有兩個頁面可能幫助您解決問題github上的示例項目。

https://github.com/dhavaln/phonegap-jqm

它包含例如用腳本,並直接鏈接到頁面更改。

+0

謝謝你的回答。實際上,我昨天設法解決了這個問題,但是我使用的解決方案與您在項目中使用的解決方案相同。我會在一分鐘後發佈答案。 – Th0rndike 2012-03-07 08:47:50

0

我的PhoneGap + jqMobile應用程序收到此錯誤信息,但是對於一個完全不同的原因。

我是動態加載JavaScript文件,並宣佈其爲: <script id="sqlPlugin" src="" type="text/javascript"></script>

鉻做出這個沒有意見,但在Android上它給了我在標題中錯誤消息。只需刪除src=""屬性即可解決問題。

相關問題