jquery-ui-地图与 jquery 移动版和 jquery 的新版本
jquery-ui-map with new version of jquery mobile and jquery
我正在用最新版本的 jQuery (1.7 -> 2.2.4) 升级旧的 混合应用程序和 jQuery 移动版 (1.1 -> 1.4.5).
此应用程序包含一个页面,该页面包含使用 jquery-ui-map.
创建的 map
现在我正在使用 PhoneGap 测试应用程序,包含地图的页面是空的,不显示任何内容,控制台也没有错误。
在我在互联网上找到的所有示例中,它们都使用了 jquery.
的早期版本
1. jquery-ui-map也可以用于最新版本jquery?
2.可能是Phonegap的问题?如果我创建一个apk,我可以看到地图吗?
3.用别的代码做地图是不是更好?
这是代码:
<link rel="stylesheet" type="text/css" href="css/jquery.mobile-1.4.5.css" />
<script type="text/javascript" src="js/jquery-2.2.4.min.js"></script>
<script type="text/javascript" src="js/jquery-migrate-1.4.1.min.js"> </script>
<script type="text/javascript" src="js/jquery.mobile-1.4.5.min.js"></script>
<script type="text/javascript" src="js/jquery.ui.map.js"></script>
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&libraries=places&key=KEY"></script>
<script type="text/javascript" src="cordova.js"></script>
<script type="text/javascript">
$(document).on('pagecreate',function(){
setTimeout(function(){
$.mobile.loading('hide');
},500);
});
$(function(){
$.mobile.loading( 'show', {
text: '',
textVisible: false,
theme: 'a',
html: ""
});
$('#map-canvas').gmap({'center':'1111,0000','zoom':10}).on('init',function(){ // coordinates example
var Link = "http://google.com"; // Example
$.getJSON(link, function(data){
....
});
});
});
</script>
非常感谢。
解决方案:
1. 在加载地图之前使用Omar编写的函数canvasHeight (Is there a way to preload google map with jquery mobile?)
2. 将函数bind替换为one来初始化地图
代码:
<link rel="stylesheet" type="text/css" href="css/jquery.mobile-1.4.5.css" />
<script type="text/javascript" src="js/jquery-2.2.4.min.js"></script>
<script type="text/javascript" src="js/jquery-migrate-1.4.1.min.js"></script>
<script type="text/javascript" src="js/jquery.mobile-1.4.5.min.js"></script>
<script type="text/javascript" src="js/jquery.ui.map.js"></script>
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&libraries=places&key=KEY"></script>
<script type="text/javascript" src="cordova.js"></script>
<script type="text/javascript">
$(document).on('pagecreate',function(){
setTimeout(function(){
$.mobile.loading('hide');
},500);
});
$(function(){
$.mobile.loading( 'show', {
text: '',
textVisible: false,
theme: 'a',
html: ""
});
canvasHeight("#map-canvas");
$('#map-canvas').gmap({'center':'1111,0000','zoom':10}).one('init',function(){ // coordinates example
var Link = "http://google.com"; // Example
$.getJSON(link, function(data){
....
});
});
});
function canvasHeight(canvas) {
var canvasPage = $(canvas).closest("[data-role=page]").length !== 0 ? $(canvas).closest("[data-role=page]") : $(".ui-page").first(),
screen = $.mobile.getScreenHeight(),
header = $(".ui-header", canvasPage).hasClass("ui-header-fixed") ? $(".ui-header", canvasPage).outerHeight() - 1 : $(".ui-header", canvasPage).outerHeight(),
footer = $(".ui-footer", canvasPage).hasClass("ui-footer-fixed") ? $(".ui-footer", canvasPage).outerHeight() - 1 : $(".ui-footer", canvasPage).outerHeight(),
newHeight = screen - header - footer;
$(canvas).height(newHeight);
$(canvas).width($(window).width());
}
</script>
谢谢奥马尔 :)
我正在用最新版本的 jQuery (1.7 -> 2.2.4) 升级旧的 混合应用程序和 jQuery 移动版 (1.1 -> 1.4.5).
此应用程序包含一个页面,该页面包含使用 jquery-ui-map.
创建的 map
现在我正在使用 PhoneGap 测试应用程序,包含地图的页面是空的,不显示任何内容,控制台也没有错误。
在我在互联网上找到的所有示例中,它们都使用了 jquery.
的早期版本
1. jquery-ui-map也可以用于最新版本jquery?
2.可能是Phonegap的问题?如果我创建一个apk,我可以看到地图吗?
3.用别的代码做地图是不是更好?
这是代码:
<link rel="stylesheet" type="text/css" href="css/jquery.mobile-1.4.5.css" />
<script type="text/javascript" src="js/jquery-2.2.4.min.js"></script>
<script type="text/javascript" src="js/jquery-migrate-1.4.1.min.js"> </script>
<script type="text/javascript" src="js/jquery.mobile-1.4.5.min.js"></script>
<script type="text/javascript" src="js/jquery.ui.map.js"></script>
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&libraries=places&key=KEY"></script>
<script type="text/javascript" src="cordova.js"></script>
<script type="text/javascript">
$(document).on('pagecreate',function(){
setTimeout(function(){
$.mobile.loading('hide');
},500);
});
$(function(){
$.mobile.loading( 'show', {
text: '',
textVisible: false,
theme: 'a',
html: ""
});
$('#map-canvas').gmap({'center':'1111,0000','zoom':10}).on('init',function(){ // coordinates example
var Link = "http://google.com"; // Example
$.getJSON(link, function(data){
....
});
});
});
</script>
非常感谢。
解决方案:
1. 在加载地图之前使用Omar编写的函数canvasHeight (Is there a way to preload google map with jquery mobile?)
2. 将函数bind替换为one来初始化地图
代码:
<link rel="stylesheet" type="text/css" href="css/jquery.mobile-1.4.5.css" />
<script type="text/javascript" src="js/jquery-2.2.4.min.js"></script>
<script type="text/javascript" src="js/jquery-migrate-1.4.1.min.js"></script>
<script type="text/javascript" src="js/jquery.mobile-1.4.5.min.js"></script>
<script type="text/javascript" src="js/jquery.ui.map.js"></script>
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&libraries=places&key=KEY"></script>
<script type="text/javascript" src="cordova.js"></script>
<script type="text/javascript">
$(document).on('pagecreate',function(){
setTimeout(function(){
$.mobile.loading('hide');
},500);
});
$(function(){
$.mobile.loading( 'show', {
text: '',
textVisible: false,
theme: 'a',
html: ""
});
canvasHeight("#map-canvas");
$('#map-canvas').gmap({'center':'1111,0000','zoom':10}).one('init',function(){ // coordinates example
var Link = "http://google.com"; // Example
$.getJSON(link, function(data){
....
});
});
});
function canvasHeight(canvas) {
var canvasPage = $(canvas).closest("[data-role=page]").length !== 0 ? $(canvas).closest("[data-role=page]") : $(".ui-page").first(),
screen = $.mobile.getScreenHeight(),
header = $(".ui-header", canvasPage).hasClass("ui-header-fixed") ? $(".ui-header", canvasPage).outerHeight() - 1 : $(".ui-header", canvasPage).outerHeight(),
footer = $(".ui-footer", canvasPage).hasClass("ui-footer-fixed") ? $(".ui-footer", canvasPage).outerHeight() - 1 : $(".ui-footer", canvasPage).outerHeight(),
newHeight = screen - header - footer;
$(canvas).height(newHeight);
$(canvas).width($(window).width());
}
</script>
谢谢奥马尔 :)