Jquery 为什么';在相同元素激发的mouseDown事件之后,是否单击事件激发?

Jquery 为什么';在相同元素激发的mouseDown事件之后,是否单击事件激发?,jquery,javascript-events,Jquery,Javascript Events,我在同一个元素上有一个mouseDown事件和一个click事件。当我点击它时,mouseDown事件会触发(即警告“鼠标按在P上”),但click事件不会。但是,如果我注释掉mouseDown警报语句,click事件将显示其警报。为什么会这样 使用console.log而不是alert,它就会工作 现场演示: 顺便说一句,我对代码进行了一些重构: $('p').on('mousedown', function (e) { console.log('Mouse pressed on '

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

使用
console.log
而不是
alert
,它就会工作

现场演示:


顺便说一句,我对代码进行了一些重构:

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

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

这是因为单击从不发生,当出现警报框时,它会中断元素上的mouseup事件,从而中断mouseclick


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

只需将
alert
替换为
console.log
或任何其他非模式输出方式。

尝试console.log而不是alert,您将看到这两个事件都被触发。查看这里的解释谢谢大家。。。实际上,我没有使用警报进行测试,只是学习和实验各种鼠标事件,无法理解此行为。DG3,我查看了该链接,但没有看到任何可以解释此特定观察/行为的内容?单击鼠标时单击事件的解释。单击事件仅在按下的鼠标按钮必须释放时触发。由于您使用了警报,鼠标释放被阻止,因此没有发生单击事件我知道必须按下并释放鼠标按钮,我只是不知道警报会中断该序列。如果有人需要使用模式-例如,为了中断单击运行代码,然后完成点击模式关闭-他们如何才能绕过这个问题。它只在Firefox中为我出现。