【发布时间】:2017-12-29 05:29:23
【问题描述】:
我有一个绝对定位的 div,我试图跟踪鼠标何时移过它,以及鼠标何时离开。不幸的是,单击框中的文本偶尔会触发 mouseleave 事件。
演示:js fiddle
如何防止这种情况发生?
JS
let tooltip = document.createElement('div');
tooltip.innerHTML = 'HELLO WORLD';
tooltip.setAttribute('class', 'tooltip');
tooltip.style.display = 'none';
tooltip.onclick = evt => {
console.log('click')
evt.stopPropagation();
}
tooltip.ondblclick = evt => {
console.log('double click')
evt.stopPropagation();
}
tooltip.onmouseenter = () => {
console.log('tooltip mouse OVER');
}
tooltip.onmouseleave = () => {
console.log('tooltip mouse OUT')
}
tooltip.style.left = '290px';
tooltip.style.top = '50px';
tooltip.style.display = 'block';
document.body.appendChild(tooltip);
HTML
<div style="width: 300px; height: 300px; background-color: lightblue">
</div>
CSS
.tooltip {
position: absolute;
/*display: none;*/
left: 100;
top: 100;
min-width: 80px;
height: auto;
background: none repeat scroll 0 0 #ffffff;
border: 1px solid #6F257F;
padding: 14px;
text-align: center;
}
【问题讨论】:
-
对我来说很好:i.imgur.com/zFA9KXI.gifv
-
您正在尝试哪种浏览器?这在 Mozilla 和 chrome 中完美运行。
-
检查扩展等
-
Chrome - 在字符周围单击时很少发生。似乎与光标变化不谋而合。
-
我保证这不是什么玩笑——我知道复制品可能很少见。我在 Chrome 最新的稳定版(不是金丝雀)上。如果有人知道这可能发生的原因以及如何预防,我很想听听。
标签: javascript google-chrome dom mouseevent