2013-04-05 133 views
2

在我的jQuery Mobile的應用程序;jQuery的後退按鈕不能正常更新工作後,

在menu.html和體內我做了這樣的事情去help.html;

.... 

$(document).off('pageinit', '#menupage').on('pageinit', '#menupage', function() { 

    $(document).off('click', '#help').on('click', '#help', function(){ 
      $.mobile.changePage("help.html", { 
       reloadPage: true, 
       transition: "flip", 
       reverse: false 
      }); 
     }); 
} 

.... 

<li><a id="help" href="#" role="link" data-role="none"> 
         <div class="img help"></div> 
         <div class="menuTitle langMenuItem3">Help</div> 
         <div class="arrow"></div> 
</a></li> 

然後help.html頁面上我有這樣的後退按鈕返回到menu.html:

<header data-role="header"> 
    <a href="#" data-rel="back" class="button" data-role="none"> 
     <div class="arrow_reverse"></div><span class="langBack">Terug</span> 
    </a> 
    <div class="pageTitle">Over deze app</div> 
</header> 

我的問題是這樣的工作在正常情況下,如果我使刷新menu.html,然後去help.html 然後回到菜單中再次,menu.html無法正確載入,我可以看到頁面加載視覺確定,但螢火上我看到了一些必要標籤內的javascripts不再命中,它從來沒有擊中過ny JavaScripts在menu.html的任何地方,只是從緩存中加載以前的html這就是所有。此外,menu.html的頁面標題不會正確更改,並在該點之後保持爲「幫助」。

我完全menu.html看起來像這樣;

http://jsfiddle.net/M5CYZ/

任何想法?

+0

如果你回來,並進一步幾次都沒有刷新,你遇到的一樣嗎? – Omar 2013-04-05 13:53:04

+0

@Omar yes..but如果我對help.html問題進行刷新解決! – Spring 2013-04-05 14:04:02

+0

這很奇怪,問題出在menu.html中。你可以發佈它的'標記?正在使用'data-dom-cache'或'data-prefetch'? – Omar 2013-04-05 14:15:40

回答

2

做這種方式。

還給按鈕的ID

<a href="#" id="backbtn" class="button"> 
<div class="arrow_reverse"></div><span class="langBack">Terug</span> 
</a> 

然後添加以下代碼help.html

$('#backbutton').off('click').on('click', function() { 
$.mobile.changePage("menu.html", { 
    reloadPage: true, 
    transition: "flip", 
    reverse: true 
}); 
}); 
+1

看起來你錯過了'on()'的一個點('.')。 – Sparky 2013-06-07 14:58:19

+0

@Sparky謝謝,糾正:) – Omar 2013-06-07 15:00:50

2

這是胡亂猜測,但根據您的代碼,這是一種正常的行爲。

jQuery Moible事件pageinit只會在初始頁面加載期間觸發一次,除非頁面被刷新(手動,rel =「external」或在您的情況下reloadPage =「true」),它將永遠不會再次觸發。

如果你想每次頁面被訪問,然後使用pagebeforeshow事件,而不是JavaScript來再次執行。正如您的示例所示,刪除pageinit並將其添加回來不會對您有所幫助。

如果您想了解更多,請閱讀頁面事件我其他的答案/文章:jQuery Mobile: document ready vs page events

下面是一個例子來證明我的觀點:http://jsfiddle.net/Gajotres/Q3Usv/

$(document).on('pageinit', '#index', function(){  
    alert('Pageinit'); 
}); 

$(document).on('pagebeforeshow', '#index', function(){  
    alert('Pagebeforeshow'); 
}); 
+0

tnx好信息,但沒有幫助.. – Spring 2013-04-05 14:07:17

+0

另一個事情是,如果我在help.html刷新並回去然後問題解決..任何想法? – Spring 2013-04-05 14:08:13

+0

正如我所說我的代碼工程很好,但是當我在menu.html上手動刷新時,那麼這個問題發生 – Spring 2013-04-05 14:09:53

相關問題