简短的 mouseover 显示与隐藏层的办法

本文介绍了一种解决mouseover层在鼠标悬停时因内部对象触发mouseout事件而导致层消失的问题的方法。通过设置延时和状态记录的方式,确保了mouseover层的稳定显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在制作 mouseover 和 mouseout 显示/隐藏层的时候,有时总会出现 mouseover 层里面的对象时,层消失的情况,这是因为mouseover 层内
对象时,会对前层产生两个事件:先mouseout、再mouseover,如果我们直接把层的隐藏控制放在onmouseout 事件上时,控制就会出错,可
以使用 setTimeout 的延时特性来跳过这类事件的影响。
示例代码如下:
<div onmouseover=“document.all['pQryType'].style.display='block';document.body.onclick='document.all[/'pQryType/'].style.display=/'none/';';”>显示触点</div>

<div style=“position:absolute;left:0px;top:3px;overflow:auto;border:1px solid black;background-color:lightyellow;display:none” id=“pQryType”  
onmouseout=“this.ovThis=1; setTimeout('if(document.all[/'pQryType/'].ovThis==1){document.all[/'pQryType/'].style.display=/'none/';}',500);”
onmouseover=“this.ovThis=0” ovThis=0>Mouse over Layer Info</div>



中间,我设了一个 ovThis=0 扩展属性来作为mouseover 状态记录,然后使用延时0.5 秒检查 mouseover状态的方式来隐藏 id="pQryType"
这个层。
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值