在我的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事件監聽器不停地四處移動。
我知道屬性,但沒有按不符合我的要求。我需要通過腳本動態擴展或摺疊項目,而不是通過屬性修復。當然,我的示例是非常基本的,但在我的真實應用程序中,我有多個可摺疊對象,並且根據某些標準,當用戶返回頁面時,我需要展開/摺疊一些,而不是一些。 –
我發現什麼工作的事情是$ .mobile.changePage(「test1.html」,{changeHash:true});但url顯示不正確 – wHiTeHaT