現在,jQuery Mobile的已經成熟了不少,並且正在接近它的1.0版本,我決定採取另一種刺在得到這個正常工作。我取得了很好的成績,所以我想在此分享解決方案。
這裏是我現在正與(如01 - 2月 - 2012年)工作的版本:
jQuery Mobile的1.0.1
的jQuery 1.6.4
jQuery UI的1.8.12
引用腳本的順序非常重要。它需要是jQuery,jQuery UI,jQuery Mobile,然後是您的自定義腳本文件。我的頁面頭部看起來像這樣:
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, minimum-scale=1, maximum-scale=1" />
<title>My jQM App</title>
<link rel="stylesheet" href="http://ajax.aspnetcdn.com/ajax/jquery.mobile/1.0.1/jquery.mobile-1.0.1.min.css" />
<script src="http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.6.4.min.js" type="text/javascript"></script>
<script src="http://ajax.aspnetcdn.com/ajax/jquery.ui/1.8.12/jquery-ui.min.js" type="text/javascript"></script>
<script src="http://ajax.aspnetcdn.com/ajax/jquery.mobile/1.0.1/jquery.mobile-1.0.1.min.js" type="text/javascript"></script>
<script src="/Scripts/script.js" type="text/javascript"></script>
<link rel="stylesheet" href="/Content/style.css" />
</head>
全部自動完成代碼應該是在一個單獨的.js文件,應該鏈接到最後一個文件。在這個示例中,mine是script.js。
接下來,確保您的所有頁面div(data-role ='page')也有一個id集。例如,在我的搜索頁上,我有
<div data-role="page" id="searchPage">
既然所有頁面div都有id,那麼您可以綁定到該div的jQuery Mobile pagecreate事件。在一個標準的jQuery網頁你會像這樣的自動完成:
$('#search').autocomplete({
source: '/Autocomplete/SearchAutoComplete',
minLength: 3,
select: function (event, ui) { }
});
要做到等價的,但把它掛在特定頁面的div看起來是這樣的:
$('#searchPage').live('pageinit', function (event) {
$('#search').autocomplete({
source: '/Autocomplete/SearchAutoComplete',
minLength: 3,
select: function (event, ui) { }
});
});
這一直到目前爲止我的工作很好。我已經能夠去掉大部分數據--ajax =「false」屬性作爲解決方法。這反過來又導致了更好的應用程序性能。我絕不會在jQuery UI和jQuery Mobile之間進行徹底的兼容性測試,因此您的里程可能會有所不同。如果遇到此方法的任何問題,請在此留言。祝你好運。
我只是試圖複製這個例子,我總是有相同的問題。提交表單後,用戶重定向回到同一頁面;但是,自動填充字段不再起作用。這是否仍然按預期工作?是否需要修改? – 2012-02-16 05:31:53
腳本的重新排序爲我做了。移動前必須包含jQuery-UI。 – 2013-06-28 09:27:17
'.live'已被刪除。現在應該使用'.on'。也許編輯你的文章,這反映了這一點? – DJTripleThreat 2013-10-17 06:49:28