我在同一个元素上有一个 mouseDown 事件和一个 click 事件。当我单击它时,mouseDown 事件会触发(即警告“鼠标按下 P”),但 click 事件不会。但是,如果我注释掉 mouseDown 警报语句,click 事件会显示它的警报。为什么是这样? http://jsfiddle.net/A8vhq/
问问题
3936 次
3 回答
6
这是因为单击永远不会发生,当出现警告框时,它会中断元素上的 mouseup 事件,从而中断 mouseclick。
用于console.log('message')
测试您的代码,而不是alert
.
于 2012-04-06T20:01:58.727 回答
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');
});
于 2012-04-06T20:01:26.130 回答
0
只需替换alert
为console.log
或任何其他非模态输出方式。
于 2012-04-06T20:02:58.753 回答