我想在我的頁面打開一個jQuery DateBox彈出窗口,它修改了窗口的哈希值,所以後面的瀏覽器按鈕關閉了彈出窗口,而不是去瀏覽器歷史記錄中的上一個網站。JQueryMobile彈出窗口不顯示時,將哈希追加到URL
<div data-role="page" id="base-layout">
<div data-role="content" id="my-content-layout">
<div id="divDesde">
<label for="divDesde" style="text-align: left;">From Date:</label>
<input data-theme="c" name="fechaDesde" id="fechaDesde" type="text" data-role="datebox" data-options='{"enablePopup": true, "useNewStyle":true, "centerHoriz": true, "centerVert": true, "mode":"datebox", "overrideDateFormat": "%d/%m/%Y"}' value="" class="required" required="required" />
</div>
<div id="divHasta" class="desdeHastaDiv">
<label for="fechaHasta" style="text-align: left;">To Date:</label>
<input data-theme="c" name="fechaHasta" id="fechaHasta" type="text" data-role="datebox" data-options='{"enablePopup": true,"useNewStyle":true, "centerHoriz": true, "centerVert": true, "mode":"datebox", "overrideDateFormat": "%d/%m/%Y"}' value="" />
</div>
</div>
</div>
<script>
$(document).on("pageinit", "#base-layout", function() {
$('#fechaHasta').on('datebox', function(e, p) {
if (p.method === 'open') {
window.location.hash = "#fechaHasta";
}
if (p.method === 'close') {
window.location.hash = '';
}
});
$('#fechaDesde').on('datebox', function(e, p) {
if (p.method === 'open') {
window.location.hash = "#fechaDesde";
}
if (p.method === 'close') {
window.location.hash = ''
}
});
});
</script>
的問題是 - 修改散列似乎以某種方式與彈出螺絲,它不打開第一次點擊。實際上它確實打開了,但是一旦哈希被追加,它就會自動關閉。
我創建了一個小提琴here雖然我看不到散列;我想它沒有被顯示,因爲jsFiddle層在頁面上。你可以點擊瀏覽器關閉彈出窗口。如果您單擊輸入上的日曆圖標,第一次沒有顯示時,如果再次點擊則是。
設置location.hash時不包括散列符號(#):http://www.w3schools.com/jsref/prop_loc_hash.asp – ezanker
試圖在我的小提琴上 - 也沒有工作。我必須雙擊才能顯示彈出窗口。 –
如果你添加一個延遲,你可以看到發生了什麼:http://jsfiddle.net/WUhwV/2/。 Datebox啓動彈出窗口,然後當設置散列時,彈出窗口關閉。第二次單擊散列已經設置,所以彈出窗口保持打開狀態。我沒有解決方案,但至少你現在可以看到,改變哈希導致彈出關閉... – ezanker