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

时间:2012-04-06 19:58:33

标签: jquery javascript-events

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

3 个答案:

答案 0 :(得分:6)

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

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

答案 1 :(得分:0)

使用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');
});

答案 2 :(得分:0)

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