2014-10-10 93 views
0

我正在處理單頁面應用程序。我需要jQuery-Mobile的pagecontainerbeforechange事件,因爲我想檢查我的站點包裝是否有類「show-nav」。當站點包裝器有這個類時,站點菜單打開並且內容向左移動350px。因此,如果用戶現在點擊註冊,並且在他開啓了網站菜單之前,我的註冊頁面就會被移走,並且由於註冊頁面上沒有網站菜單,因此無法將其重新取回。jQuery-Mobile pagecontainerbeforechange不會觸發

首先,我試圖使用pagecontainerload事件,直到我看到它已被棄用。然後我將其更改爲pagecontainerloadbeforechange事件,但我無法得到它的工作。

我要來檢查類「.show-nav」的網頁有ID #registration

因此,用戶是主要的網站上,他點擊「註冊」頁面更改類「.show-nav前「應該被刪除。刪除類的功能已經建立,但我不知道如何以正確的方式調用它。

function toggleNav() { 
     if ($('.site-wrapper').hasClass('show-nav')) { 
      // Do things on Nav Close 
      $('.site-wrapper').removeClass('show-nav'); 
     } 

更詳細的說明 - >

雖然我寫這篇詳細說明我得到了解決方案,它是如此簡單,這是令人尷尬的對我來說:刪除從網站#registration網站,包裝...就這樣。

感謝您的幫助,感謝您的編輯奧馬爾!

+0

'pagecontainerload'不被棄用和'pagecontainerbeforechange'應該觸發。請添加您的完整代碼。 – Omar 2014-10-10 09:00:58

回答

1

您可以將toggleClass添加到.site-wrapper。如果它具有類.show-NAV它會刪除它,否則會加重該類:)

$('.site-wrapper').toggleClass('show-nav'); 
+0

它應該在每次有課程時刪除它。它不應該添加該類,因爲那樣的話,註冊表將被移開,就像你在屏幕截圖中看到的那樣: -/ – Sithys 2014-10-10 08:57:45

+0

你可以做一個小提琴嗎? – 2014-10-10 08:59:06

+0

認爲這是不可能的,但我要編輯我的帖子上面有更多的截圖和更詳細的描述。給我10分鐘 – Sithys 2014-10-10 09:01:32

0

pagecontainerbeforechangePagecontainer的Widget的一部分。

在這個時候(jqm 1.4.x)這個小部件被設計成一個單身,綁定到body元素。所以如果你想檢測頁面變化,你應該使用上面的代碼:

$("body").on("pagecontainerbeforechange", function(event, ui) { 
    console.log(event); 
    console.log(ui); 
});