我有一个页面,其中有一个带有文本和图标的矩形区域,整个页面都是可单击的。定位标记设置为显示:块。其中一个图标具有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;
}


那也不起作用。有什么想法在这种情况下如何防止封闭的锚点对点击做出反应?

最佳答案

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

关于javascript - 为什么我不能在IE中捕获鼠标单击?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/389438/

10-16 14:31