为什么在同一元素上的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
。