Javascript 当节点覆盖在chrome中时,为什么没有触发单击事件

Javascript 当节点覆盖在chrome中时,为什么没有触发单击事件,javascript,jquery,events,Javascript,Jquery,Events,html: 当我单击标题时,只显示结果控制台“焦点”。为什么单击事件不触发 因为click就像mousedown和mouseup的组合。在您有机会在#title上单击鼠标之前,您正在显示#实体,因此不会启动任何单击。更改。单击至。鼠标向下以获得想要的效果 要同时触发mousedown和mouseup,必须在同一个元素中触发,在mousedown之后会触发焦点事件,这会导致覆盖元素出现,因此mouseup会在#实体元素上触发,因此单击事件不会完成 单击事件在定点设备按钮(通常为 在单个元素上按

html:



当我单击标题时,只显示结果控制台“焦点”。为什么单击事件不触发

因为click就像mousedown和mouseup的组合。在您有机会在
#title
上单击鼠标之前,您正在显示
#实体
,因此不会启动任何单击。更改
。单击
。鼠标向下
以获得想要的效果

要同时触发mousedown和mouseup,必须在同一个元素中触发,在mousedown之后会触发焦点事件,这会导致覆盖元素出现,因此mouseup会在
#实体
元素上触发,因此单击事件不会完成

单击事件在定点设备按钮(通常为 在单个元素上按下并释放鼠标按钮)


演示:

您是否将javascript放在
$(document.ready(function(){…})中了@JFit焦点事件处理程序工作;)此小提琴复制了问题:@JasonP您的小提琴不完整。尝试
#title {
        position: absolute;
    }
#entity {
        position: relative;
        display: none;
        background: white;
    }
<div id="title" contenteditable=true>aaaaa</div>
<div id="entity">bbbb</div>
$('#title').focus(function(){
    console.log('focus');
    $('#entity').show();
})
$('#title').click(function(){
    console.log('click');
})
$('#title').on('mouseup mousedown', function (e) {
    console.log(e.type);
})