为什么在同一元素上的mouseDown事件触发后不点击事件触发?

我在同一个元素上有一个mouseDown事件和一个click事件。 当我点击它时,mouseDown事件触发(即警告“鼠标按下P”),但点击事件不会。 但是,如果我注释掉mouseDown警告语句,则click事件会显示其警报。 为什么是这样? http://jsfiddle.net/A8vhq/

这是因为点击永远不会发生,当出现警告框时,它会中断元素上的mouseup事件,从而中断鼠标点击。

使用console.log('message')来测试代码而不是alert

而不是alert ,使用console.log ,它将工作。

现场演示: http //jsfiddle.net/A8vhq/1/


顺便说一句,我稍微重构了一下代码:

 $('p').on('mousedown', function (e) { console.log('Mouse pressed on ' + e.target.nodeName); }); $('p').on('click', function (e) { console.log(e.target.nodeName + ' clicked'); }); 

只需用console.log或任何其他非模态输出方式替换alert