2011-10-21 16 views
0

我在使用IE(8)的e.preventDefault()时遇到了问题。如何防止Google Earth中的默认事件动作使用IE

在Chrome中一切正常(意味着执行正确,并且默认操作被阻止)。但是,在IE中,执行是正确的,但默认行为也会发生。

在进一步的调查中,我发现无论何时查看事件对象,都会失败(没有错误,只是轻轻地退出处理程序)。

我删除了所有的代码,并煮了下去如下:

google.earth.addEventListener(spot.placemark, 'click', test); 

function test(e){ 
    alert(1); 
    e.returnValue = false; 
    alert(2); 
    if(e.preventDefault) e.preventDefault(); 
    alert(3); 
    return(false); 
} 

因此,与IE浏览器中,只有第一次警报的火灾。随着铬他们都开火。如果我撤消警报2和警报3,仍然只有警报1发生。基本上 - 触摸e失败。

我也尝试使用window.event对象,而不是依靠e的传递值。

var e = window.event; 

但是,这有同样的效果。欣赏一些指针。谢谢

回答

0

event.preventDefault() function not working in IE

function test(e) { 
    e.preventDefault ? e.preventDefault() : e.returnValue = false; 
} 
+0

回答谢谢@Manuel – bruce

+0

但看着è导致“没有这样的属性”错误的非常行为。我可以通过try/catch来解决这个问题。但是这并不能帮助我设置“e.returnValue”。 – bruce