我在 div 上有一个 textarea。在 div 中,我突出显示输入到 textarea 中的文本的某些部分。我试图将鼠标悬停在亮点上的事件上,但显然我不能,因为它们在我的文本区域下。我在想是否可以使用 textarea 上的 mousemove 事件来跟踪鼠标坐标,但后来我认为这对我没有好处,因为如果突出显示跨越,我无法确定确切的边界。
所以问题是,我如何为那些因为在其他元素下而没有收到这些事件的元素模拟 mouseover 和 mouseout 事件?
编辑:
我根据马库斯的回答完成了一个解决方法。mouseover / mouseout 事件的完整代码:
var mouseDown = false;
var mouseIsOver = false;
var lastOverElem = false;
textarea.mousemove(function(e) {
if (!mouseDown) {
textarea.hide();
var elm = $(document.elementFromPoint(e.pageX, e.pageY));
textarea.show();
if (elm.hasClass("highlighted")) {
/* MOUSE MOVE EVENT */
if (!mouseIsOver) {
mouseIsOver = true;
/* MOUSE OVER EVENT */
}
} else {
if (mouseIsOver) {
mouseIsOver = false;
if (lastOverElem) {
/* MOUSE OUT EVENT */
}
}
}
}
});
$('body').mousedown (function () {mouseDown = true;});
$('body').mouseup (function () {mouseDown = false;});