Google地图信息窗口中的Javascript - 在IE中不起作用

时间:2009-08-20 00:45:42

标签: javascript google-maps

首先,这是我的 - Test Site

这是我测试谷歌地图的游乐场,我并不关心自己的美学。我遇到麻烦的是当我点击信息窗口内的链接时,会触发一些jQuery。如果您熟悉Google地图,那么我就是创建我的信息库的地方:

GEvent.addListener(marker,"click", function() {
map.openInfoWindow(point,'<div class="infoWindow">'+windowText+'\
'+<a href='#' class='showme' onclick='return false;'>Show Comments</a>+'\
</div>');                   

/*On click, show all the comments*/
$('.showme').live('click', function(){
    //alert('hey');
    $('.comment').toggle('slow');
});

                                             });  

要了解它的工作原理,只需查看页面上的源代码即可。最初我没有使用“现场活动”而是正常“点击”,这是行不通的。我假设是因为除了主窗口之外,信息窗口是它自己的环境。

这是错误的我相信当我尝试“直播活动”时它开始在Chrome和FF中运行。所以现在我试图理解为什么click事件在任何浏览器中都不起作用,以及为什么live事件可以在除IE之外的所有事件中工作。

有人有任何意见吗?

谢谢,
列维

编辑:对不起,如果不清楚信息窗口中的“显示评论”链接是我的麻烦所在。

3 个答案:

答案 0 :(得分:2)

在IE中使用jquery的live()功能似乎存在一些问题。有一个建议here来尝试绑定。我在其他一些地方读过,使用不同的鼠标事件也可以正常工作,例如mouseup或mousedown。但它绝对看起来像是一个IE漏洞。

答案 1 :(得分:0)

livequery插件似乎可以在IE的信息窗口中使用。

$('.showme').livequery(function(){
  $(this).click(function(){
    $('.comment').toggle('slow');
  });
});

答案 2 :(得分:0)

live('click',...)更改为live('mouseup', ...)修复了我的问题。