防止鼠标点击事件

The*_*Nik 9 javascript cross-browser

我在 Chrome、Firefox 和 IE 上尝试了以下代码:

var test = document.getElementById('test');

test.addEventListener( 'click', function ( e ) {
  alert( 'clicked' );
});

test.addEventListener( 'mousedown', function ( e ) {
  e.stopImmediatePropagation();
  e.stopPropagation();
});
Run Code Online (Sandbox Code Playgroud)

在 chrome 中,不会触发警报;在 Firefox 中,即,是的。哪个是正确的行为?如何防止点击事件被触发?

jsBin 示例

Shr*_*yas 1

如果想取消点击事件,可以在Capture阶段进行。将单击侦听器附加到主体以取消所需元素上的单击事件。addEventListener 中的第三个参数允许您指定是否要使用捕获阶段。

http://jsbin.com/kocapuharo/1/edit?html,css,js,输出

  • 问题是如何从“mousedown”事件中做到这一点。“click”事件在鼠标按钮释放时触发,因此当您可以执行后者时,并不总是可以执行前者。 (10认同)