我在嘗試重定向到另一個頁面時出現問題,當用戶從jQuery Mobile的<select>
菜單中選擇一個選項時。重定向jQuery Mobile中的大選擇菜單的更改
下面是一個非常小的例子,類似於我試圖做的事,證明我遇到的問題。問題是,當選項列表太大而不適合在屏幕上時,重定向確實是而不是的工作。當選項適合屏幕時,它工作正常。 (您可以通過你的窗戶非常小的在桌面瀏覽器重現此。)
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>jQuery Mobile Test</title>
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.css">
<script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
<script src="http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.js"></script>
<script>
$(function() {
$('#mySelect').bind('change', function() {
// The actual logic for building the URL is more complicated, obviously.
// This is just an example.
var url = 'jquery-mobile-test.html?param=' + this.value;
location.href = url;
});
});
</script>
</head>
<body>
<div data-role="page" class="type-home">
<div data-role="content">
<div data-role="fieldcontain">
<select data-native-menu="false" name="param" id="mySelect">
<option>Select an Option...</option>
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
<option value="4">Four</option>
<option value="5">Five</option>
<option value="6">Six</option>
<option value="7">Seven</option>
<option value="8">Eight</option>
<option value="9">Nine</option>
<option value="10">Ten</option>
</select>
</div>
</div>
</div>
</body>
</html>
從jQuery Mobile Docs一些背景資料:
當
select
有少量的,將適合的選項設備的屏幕上,該菜單將顯示爲帶有彈出式轉場的小覆蓋圖。 [...]當設備的屏幕上顯示的選項過多時,框架會自動創建一個新的「頁面」,其中包含選項的標準list view。這允許我們使用設備上包含的本地滾動來移動長列表。標籤內的文本用作此頁面的標題。
當它創建新的「頁面」時,它將#&ui-state=dialog
添加到URL的末尾,然後當選擇一個選項時,它將URL更改回來。我認爲這是干擾我嘗試去做的重定向的原因。
有關解決此問題的最佳方法的任何建議?
編輯#1:我應該提到的是,我無法使用$.mobile.changePage()
因爲頁面到我轉向做一些奇怪的重定向的它自己的多數民衆贊成搞亂了轉變。對不起,這在示例中沒有提到。
編輯#2:我粘貼上面的代碼(而不是使用要點),以便人們可以通過搜索更容易地找到此問題。
我將其移至jsfiddle.net以測試您的代碼。我錯過了什麼,或者是否有可能在您的要點中進行測試? – BumbleB2na
您可以直接下載該html文件並在您的計算機上進行本地測試。 – jnrbsn
我決定不把它放在jsfiddle上,因爲它在iframe中,解釋如何重現問題會更困難。 – jnrbsn