为什么我不能在IE中捕获鼠标?

时间:2008-12-23 17:02:04

标签: javascript internet-explorer

我有一个页面,其中有一个矩形区域,里面有文字和图标,整个内容都是可点击的。 anchor标记设置为display:block。其中一个图标有一个onclick处理程序。如果一个人点击了一个图标,我只想让图标的onclick处理程序运行,而不是实际激活包含的锚标记。

Firefox表现得像我想要的那样,IE没有。

所以我试图在onclick处理程序中捕获事件:

function my_onclick_handler(evt){
  if (!evt) evt = window.event;

  // ... handle the click

  if (evt.stopPropagation) evt.stopPropagation();
  evt.cancelBubble = true;
}

那没用,所以我想也许是onmouseup或onmousedown事件触发了锚标签,所以我在onmouseup和onmousedown方法中添加了clickSwallow方法:

function clickSwallow(evt){
  if (!evt) evt = window.event;
  if (evt.stopPropagation) evt.stopPropagation();
  evt.cancelBubble = true;
}

这也不起作用。在这种情况下如何防止封闭锚对点击做出反应?

3 个答案:

答案 0 :(得分:3)

我只想使用<span>,但我认为从事件处理程序返回false也应该可以解决问题。

答案 1 :(得分:1)

This post有一些你没有的项目(比如e.returnValue和e.preventDefault)但是从文本看来它们是FF特定的功能。可能值得一试。

答案 2 :(得分:0)

尝试将您的锚更改为:

<a href="javascript:void(0)"> <img src="..." onclick=".."> </a>