2014-07-09 59 views
0

嗨,我有一些jQuery Mobile的和pageshow工作正常(竊聽它的好消息,但是它工作罰款)是這樣的:在JQM pageshow作品,pagebeforeshow不

$(document).off('pageshow').on('pageshow', function() { 
    console.log('it happened'); 
}); 

注:我有很多(閱讀:失去)緩存的問題,所以我恐怕儘管所有信息相反off()必須留下。你會和我爭論,我會保持off(),我會是對的。

確定,但是當我將其更改爲

$(document).off('pagebeforeshow').on('pagebeforeshow', function() { 
    console.log('it happened'); 
}); 

它不運行。現在我知道你是應該做類似

$(document).off('pagebeforeshow').on('pagebeforeshow', '#somediv', function() { 
    console.log('it happened'); 
}); 

,但我不希望它是隻在這個DIV我想這是對整個文檔。

+0

我不得不使用它,我們是開源所以必須使用開放源依賴關係。它基本上是一個瀏覽器中的祕密撒謊瀏覽器,一旦你知道它可以使用 – user26676

+0

不需要使用閉源依賴關係。只需爲您使用jQm的位編寫自己的代碼即可。如果您無法弄清楚jqm如何執行某些操作,請查看jqm源代碼。 jQm所做的大多數事情,爲jQuery提供替代解決方案相對容易(不像jQuery)。 – user1094553

+1

附加到整個「身體」呢? ('pagebeforeshow','body',function()' – Sga

回答

0

當你離開這樣一個特定的頁面,您可以測試(曾在我的情況):

- >啓動循環功能(setInterval的),如果你仍然在該網頁上,測試每2秒,如果沒有(這意味着你剛剛離開的頁面)只執行一次函數

下面是代碼:

<script>$('#YOUR_PAGE').bind('pageshow', function(data) { 
     var repeat = setInterval(function() { 
     var page_path = $.mobile.path.parseUrl(window.location).toString().toLowerCase() ; 
     var page_page = page_path.split("#"); 
      if (page_page[1] != "YOUR_PAGE"){ 

      ... 
      DO YOUR THING 
      ... 

      clearInterval(repeat); 
       } 
      }, 2000); 
     }); 
</script>