【问题标题】:google maps listener only working once, jQuery谷歌地图监听器只工作一次,jQuery
【发布时间】:2014-02-08 14:16:22
【问题描述】:

我的页面上有一个谷歌地图,它与使用 jQuery 的图像交替出现。 我的谷歌地图侦听器查找 mouseover 和 mouseout 事件并停止与图像的交替,这有效,但仅有效一次,并且侦听器似乎已被删除,因此我可以通过将鼠标移到“暂停”地图来查看它,并在鼠标离开地图时恢复“交替”,但是当我想暂停动画以再次查看地图时,它不会暂停。我似乎无法对听众做出反应。

我的 jQuery

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

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

var interval = setInterval(switchBox, 5000);

谷歌地图代码:

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);
        }

 }

【问题讨论】:

  • 监听器在pageinit中吗?
  • 我只用过$(document).ready(function() {
  • 如果可行,请在 pageinit 中尝试。
  • 如果我使用 $(document).on("pageinit",function(){,地图不会加载
  • 你必须在mouseoutInterval()函数中设置interval = setInterval(switchBox, 5000);。另外,我会使用addListener()

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


【解决方案1】:

问题出在方法上:

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

它设置了间隔,但变量处理程序interval 没有再次设置。应该改成

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

另外,我会使用addListener()

【讨论】:

    猜你喜欢
    • 2011-09-17
    • 1970-01-01
    • 1970-01-01
    • 2021-01-07
    • 1970-01-01
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    相关资源
    最近更新 更多