2012-07-30 53 views
0

編輯:澄清我希望#捕獲照片按鈕來激活,但我想重置它時,我編程導航到另一頁。防止jQuery手機按鈕的默認行爲

我目前正在構建一個使用jQuery框架的Phonegap/Cordova應用程序。大多數都很好 - 除了一種情況。

我有一個固定頁腳(工程很好)與導航欄和三個按鈕。

兩個按鈕轉到常規頁面沒有ajax,他們工作得很好。

一個按鈕掛接到相機接口並觸發(即)iPhone上的相機。如果我取消我回到屏幕,但相機的按鈕現在具有活動狀態和樣式。

我觸發了一個失敗的changePage頁面得到激活,但它不會改變按鈕的狀態!?我試圖手動刪除類沒有成功!?有些東西似乎延遲了活動狀態類的添加,直到或某事。

我做錯了嗎?不應該changePage()找到並觸發它的錨?

在專輯頁面頁腳看起來是這樣的:

<div class="footer" data-role="footer" data-position="fixed" data-id="footer-tab"> 
    <div data-role="navbar" class="nav-glyphish"> 
    <ul> 
     <li><a id="welcome" href="#welcome"></a></li> 
     <li><a id="capture-photo"></a></li> 
     <li><a id="show-album" href="#album" class="ui-btn-active ui-state-persist"></a></li> 
    </ul> 
    </div> 
    </div> 

如此反覆 - 在#捕捉照片按鈕沒有相應的頁面,但是當我點擊它就會被激活,如果我取消了攝像頭 - jqm捕獲changePage並轉到#show-album,但#capture-photo按鈕仍被標記爲活動。

P.S我在兩個頁面上都有相同的頁腳(data-role ='footer'),除了它們各自的錨點具有ui-btn-active和ui-state-persist集合。我對這個重複的代碼感到有點不舒服,但它似乎是解決持久化頁眉/頁腳的唯一方法?

+0

你的意思是像做e.preventDefault();點擊? – 2012-07-30 18:34:11

+0

不是真的:(我在編輯中稍微澄清了一下:) – 2012-07-30 18:41:12

+0

現在我嘗試手動觸發它,如下所示:'$('#album#show-album')。trigger('vclick')'running'$ .mobile .changePage('#album')'它實際上起作用,但是當我導航到#welcome頁面時,它又被激活了(!?!?) - 所以現在#welcome-page和#capture-photo都是活動的(!?!?)。 – 2012-07-30 18:50:30

回答

0

所以我不幸地解決了這個問題。在運行$ .mobile.changePage('#album')之前,我手動觸發所有固定頁腳導航欄上的'vclick'事件。醜,但現在它可以工作...:o

// HATE DOING THIS! BUT JQM IS NOT WORKING WITH ME ON THIS. 
    $('#welcome #show-album').trigger('vclick') 
    $('#album #show-album').trigger('vclick')