现在,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