谷歌地图监听器只工作一次,jQuery

时间:2014-02-08 14:16:23

标签: javascript jquery google-maps google-maps-api-3

我的页面上有一个谷歌地图,使用jQuery替换图像。 我的谷歌地图监听器寻找鼠标悬停和鼠标移动事件并停止与图像的交替,这是有效的,但只能工作一次,并且听众似乎被删除,所以我可以“暂停”地图通过移动我的鼠标来查看它,并通过鼠标离开地图恢复'交替',但是当我想暂停动画再次查看地图时,它不会暂停。我似乎无法反应听众。

我的jQuery

    function switchBox() {
    $('#imagebox7img').toggle('slow', 'linear');
    $('#map-canvas').toggle('slow', 'linear');
}

$('#imagebox7img').hide();

var interval = setInterval(switchBox, 5000);

Google地图代码:

var map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);


google.maps.event.addDomListener(map, 'mouseover', function() {
mouseoverInterval(map);
});

google.maps.event.addDomListener(map, 'mouseout', function() {
mouseoutInterval(map);
});


    function mouseoverInterval(map) {
        clearInterval(interval);
        }

    function mouseoutInterval(map) {
        setInterval(switchBox, 5000);
        }

 }

1 个答案:

答案 0 :(得分:0)

问题在于方法:

function mouseoutInterval(map) {
    setInterval(switchBox, 5000);
}

将时间间隔设置为后退,但不再设置变量处理程序interval。它应该改为

function mouseoutInterval(map) {
    interval = setInterval(switchBox, 5000);
}

此外,我还会使用addListener()