创建自定义谷歌地图。
我的成就 - 我需要映射' center'在div悬停时重新排列div宽度和高度后重新排列。
问题:当我悬停并按住div - 地图中心重新安排时。 如何解决这个问题
jsFiddle 我这样累了
代码
function initialize() {
var mapOptions = {
zoom: 4,
center: new google.maps.LatLng(21.14580, 79.08815)
};
var map = new google.maps.Map(document.getElementById('mapbox'),
mapOptions);
var marker = new google.maps.Marker({
position: map.getCenter(),
icon: 'http://toobler.com/staging/design/hapzis/img/icon-map.png',
map: map
});
}
google.maps.event.addDomListener(window, 'load', initialize);
// hover function
$('#mapbox').hover(function () {
setTimeout(function () {
initialize()
}, 1000);
});
答案 0 :(得分:1)
你需要关闭悬停
工作JSFiddle
$('#mapbox').hover(function() {
setTimeout(function() {
initialize()
}, 1000);
$(this).off('hover');
});
答案 1 :(得分:1)
尝试off() method:
$('#mapbox').hover(function() {
setTimeout(function() {
initialize()
}, 1000);
$(this).off('hover');
});
或者只是将false设置为初始化函数:
$('#mapbox').hover(function(){
setTimeout(function(){
initialize();
initialize = false;
});
});
答案 2 :(得分:0)
默认情况下,悬停功能使用mouseout鼠标悬停方法,因此可能无法获得预期结果。
因为你只需要在mouseleave之后初始化你的地图
尝试用以下代替您的悬停代码希望这会有所帮助..
$('#mapbox').mouseleave(function() {
setTimeout(function(){
initialize()
},1000);
});
请参阅mouseout vs mouseleave here