sách gpt4 ai đã đi

javascript - e.StopPropagation() 忽略重叠元素

In lại 作者:行者123 更新时间:2023-12-03 12:19:06 25 4
mua khóa gpt4 Nike

我有一个鼠标悬停事件,该事件会在鼠标悬停的 div 顶部部分创建一个工具提示 div。

但是如果鼠标位于工具提示上,它会触发我的鼠标。我希望它忽略新创建的 div,这样它就不会触发鼠标移出,除非我将鼠标移出原始 div。所以我使用了 e.stopPropagation() 但它似乎没有解决问题。

Đây là mã của tôi:

function ToolTip(e,el,data)
{
e.stopPropagation(); //ignore other elements that overlap

var div = createDiv();
div.style.left = el.offsetLeft + 10 + 'px';
div.style.top = el.offsetTop + 10 + 'px';
div.className = 'ToolTip';
div.innerHTML = 'This is a tooltip!';
document.body.appendChild(div);

function removeToolTip()
{
el.removeEventListener('mouseout',removeToolTip,false);
removeDiv(div);
}

el.addEventListener('mouseout',removeToolTip,false);
}

div.addEventListener("mouseenter",function(e){ToolTip(e,this,data);},false);

我是否误解了e.stopPropagation()的使用?

我用脚本制作了一个jsfiddle: http://jsfiddle.net/Lc7t7/

1 Câu trả lời

据我了解,您试图阻止工具提示与光标交互,因为当它这样做时,它KHÔNG与工具提示所属的元素交互。您需要做的就是使工具提示对光标“不可见”。停止传播没有帮助,因为工具提示的父级不是工具提示元素,而是 元素。

令人惊讶的是,这个问题的答案不是 JavaScript,而是 CSS。 CSS pointer-events property ,当设置为không có时,使元素不与光标交互。 JavaScript 应该尊重这一点,并忽略您使用工具提示“将鼠标移出”元素的事实。不幸的是,浏览器支持是 lacking在许多浏览器的旧版本中,因此请记住这一点。

关于javascript - e.StopPropagation() 忽略重叠元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24523656/

25 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com