2011-10-21 35 views
2
其他頁面

在我的jQuery移動(1.0RC2)應用回來的時候,我有兩頁:test1.html,test2.htmljQuery Mobile的:可摺疊的pageinit沒有展開,未來從

第一頁,TEST1 html的,包括collabsible集,在那裏我在pageinit事件監聽器通過腳本擴展一個collabsible項目(嘗試都pageshow和pageinit):

$('#page1').live('pageinit', initPage); 
function initPage() { 
    alert('initPage!'); // this line seems to be always getting executed 
    $('#my_expandable').trigger('expand'); // ... but this line doesn't when coming back via a back link! 
} 

這個工程頁面的第一個電話罰款。

然後我就導致我的第二頁test2.html一個鏈接,如下所示:

<script> 
function goPage2(criteria) { 
    $('#page1').die('pageinit', initPage); 
    $.mobile.changePage("test2.html", {reverse: false, reloadPage: true}); 
} 
</script> 

<a href="javascript:goPage2('brand');" rel="external" class="ui-link-inherit" style="margin-top:0px;padding-top:0px;margin-bottom:0px;padding-bottom:0px;">page 2</a> 

當我然後通過

<script> 
function goPage1() { 
    $.mobile.changePage("test1.html", { reverse: true, reloadPage: true}); 
} 
</script> 
<a href="javascript:goPage1();" rel="external" class="ui-link-inherit">test</a> 

只有警報回到第一頁test1.html的pageinit事件偵聽器中的消息已執行,但可摺疊式擴展並未通過擴展

您可以在此處看到示例:http://bit.ly/rr0dq3

如何重現該問題:在http://bit.ly/rr0dq3

    • 負載test1.html你會得到一個警告消息,並且可摺疊將擴大
    • 點擊按鈕「轉到第2頁',你會在第二頁上到第二頁test2.html
    • ,點擊灰色按鈕'test',你會回到第一頁test1.html
    • 現在的問題:正如您所看到的,test1.html的pageinit事件的alert命令正在執行,但展開collapsible不是 - 爲什麼不呢?很明顯,pageinit事件監聽器方法正確輸入,但只有可摺疊的代碼在這裏似乎有問題。

    我認爲這可能是一個錯誤(在這裏提交報告https://github.com/jquery/jquery-mobile/issues/2791),但也許別人有一個想法。

    解決方法: 兩個警報和可摺疊的擴張,當我用不同的方式來打開第二頁test2.html正在執行,使用的

    changePage(...); 
    

    window.location.href = "test2.html"; 
    

    代替

    但它不是很令人滿意。如果我使用頁面注入方式,爲什麼它不能正常工作?當我打開不同的頁面時,我已經調用die()方法,以避免多個pageinit事件監聽器不停地四處移動。

  • 回答

    0

    您是否嘗試過使用data-attribute爲可摺疊的內容領域,使它們加載擴展:

    data-collapsed="false" 
    

    這裏是對文檔的鏈接此行爲:http://jquerymobile.com/demos/1.0rc2/docs/content/content-collapsible.html

    +0

    我知道屬性,但沒有按不符合我的要求。我需要通過腳本動態擴展或摺疊項目,而不是通過屬性修復。當然,我的示例是非常基本的,但在我的真實應用程序中,我有多個可摺疊對象,並且根據某些標準,當用戶返回頁面時,我需要展開/摺疊一些,而不是一些。 –

    +0

    我發現什麼工作的事情是$ .mobile.changePage(「test1.html」,{changeHash:true});但url顯示不正確 – wHiTeHaT