我有一个在同一元素上的鼠标按下事件(mouseDown)和点击事件(click)。当我单击它时,鼠标按下事件触发并弹出“Mouse pressed on P”的警报,但是点击事件则没有。然而,如果我注释掉鼠标按下警报语句,则点击事件将显示警报。这是为什么?http://jsfiddle.net/A8vhq/
这是因为当警告框出现时,点击事件从未发生,因此打断了元素的鼠标弹起事件,从而打断了鼠标点击事件。
使用 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');
});
只需将alert
替换为console.log
或任何其他非模态输出方式。