我正在使用jQuery Mobile(以及jQuery)来创建移动网站。这不是使用jQuery Windows Phone UI。
我创建了两个选择框,“ bpSelect ”和“ msSelect ”。 msSelect的数据基于bpSelect中的选择。
一旦用户在bpSelect中做出选择,就会对后端数据库进行ajax调用,然后将数据以JSON格式传回页面。创建msSelect的选项并调用“刷新”以显示它。
所有桌面网络浏览器以及iPhone或Android设备都可以正常使用。 在我的WIndows Phone(Lumia 920)上,msSelect框永远不会被创建。
似乎Windows Phone没有调用 $('#bpSelect')。当我做出选择时,在页面上更改(function()。 当我在此呼叫中加入“警报”时,它会在除Windows Phone 8浏览器之外的每台设备上触发。
这里有什么想法吗?我尝试过很多东西,例如使用“data-ajax = false”来访问页面,以及“document.ready()”而不是“pageinit”,但似乎没有任何效果。似乎Windows Phone浏览器忽略了某些jQuery代码。
我的所有功能都在页面顶部的 $('#createCarPage')。bind('pageinit',function()中。 它位于 data-role =“page”data-theme =“a”id =“createCarPage” DIV标记
内Windows Phone似乎忽略了其他一些事情,例如 .selectmenu('disable'),但是现在我只是想让选择框工作。< / p>
我的代码的基础知识如下。任何帮助,将不胜感激。我真的很难过这个。
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script src="http://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.min.js"></script>
<body>
<div data-role="page" data-theme="a" id="createCarPage" class="rf-background">
<script type="text/javascript">
$('#createCarPage').bind('pageinit', function()
{
$("#exTypeOptions input[type='radio']").checkboxradio('disable');
$('#bpSelect').selectmenu('disable');
$('#msSelect').selectmenu('disable');
$('#bpSelect').on('change', function ()
{
$("#msSelect option").each(function(index, option) {
$(option).remove();
});
var listServlet = "/messages/makeList";
$.ajax({
url: listServlet,
data: { bp:$('#bpSelect').val() },
dataType: "json",
success: function(data)
{
$('#msSelect').append('<option value=>' + 'Select...'+ '</option>');
for (var i=0; i<data.model.length; i++)
{
$('#msSelect').append('<option value="' + data.model[i] + '">' + data.model[i]+ '</option>');
}
$('#msSelect').selectmenu('enable');
$('#msSelect').selectmenu('refresh');
},
error: function(jqXHR, textStatus, errorThrown)
{
}
});
});
});
</script>
答案 0 :(得分:1)
好的,我想出来了。在研究了jQuery和jQuery Mobile之后,我看不出浏览器会忽略jQuery代码的原因。 jQuery网站声称它支持Windows Phone浏览器,因此必定存在其他问题。
有...... Zepto.js
除了使用jQuery之外,我还使用了响应式框架 Foundation 4 。 我发现Foundation使用Zepto.js而不是jQuery。 Zepto.js网站声明了以下内容......
Zepto预计可以在每个现代浏览器和浏览器中使用 环境,Internet Explorer除外。
基金会网站说,你可以为Zepto提供jQuery,而不会出现任何问题。 当我删除对Zepto的引用时......问题解决了。
基金会声称他们切换到Zepto作为jQuery的“更轻替代”。
就个人而言,我会采取更实际的实施方式!
我希望这有助于某人。