从我读过的所有文档中,只有当用户实际将鼠标移动到元素边界之外时,才会调用 mouseout 事件。
我观察到,当元素被单击和遮蔽时,也会在元素上触发 mouseout 事件,以使单击的坐标在被遮蔽的元素和遮蔽元素之间重叠。
考虑这个元素:
当我单击元素的绿色部分(与模糊元素重叠的区域)时,我看到跨浏览器的行为不一致。Chrome 和 Firefox 会在被遮挡的元素上触发 mouseout 事件,而 IE 和 Opera 不会在被遮挡的元素上触发 mouseout 事件。根据 HTML/CSS 规范,这种情况是否存在“正确”行为?CSS 视觉格式化模型没有说明任何关于事件处理的内容。
这是代码:
$( '#button' ).on( 'click', function(e) {
$( '#overlay' ).show();
log( document.activeElement + ' has the focus' );
});
$( '#button' ).on( 'mouseout', function(e) {
log( 'target: ' + e.relatedTarget.id );
log( 'why are you mousing out?' );
});
这是一个工作示例:http: //jsfiddle.net/jmjpro/7Jp2G/6/。