问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

关于页面JS 鼠标触发事件的问题

发布网友 发布时间:2022-04-26 16:29

我来回答

1个回答

热心网友 时间:2022-05-13 18:44

在DOM中。因为会有嵌套结构,因此如果鼠标指针父DIV移动到内部的子DIV上,会触发mouseout事件,这并不是bug或者什么歧义,因为mouseout的意思就是从一个元素移动到另一个元素上。并没有说另一个元素就不能是当前元素的子元素。但你的要求依然是可以实现的。就是利用事件冒泡。例如:


html中。

<html>
<head lang="en">
    <meta charset="UTF-8">
</head>
<body style="padding:0;margin:0">
<div id="sDiv" style="height:500px;background:black;padding:1px">
<div id="cDiv" style="height:100px;margin:200px;background:red"></div>
</div>
</body>
<script>

js这样写:

window.onload = function(){
    document.getElementById('sDiv').onmouseout = function(e){
        var ev = e || window.event;
        var target = ev.target || ev.srcElement;
        if(target.id === 'sDiv' && (!ev.toElement || ev.toElement.id !== 'cDiv')){
            alert('鼠标移动出了父DIV元素。');
        }
    }
}

 说白了。就是如果是移动到子元素中,不认为是移出父元素就好了,因此更加通用的写法如下:

function isParent (obj,parentObj){ 
while (obj != undefined && obj != null && obj.tagName.toUpperCase() != 'BODY'){ 
    if (obj == parentObj){ 
        return true; 
    } 
    obj = obj.parentNode; 

return false; 

window.onload = function(){
document.getElementById('sDiv').onmouseout = function(e){
    var ev = e || window.event;
    var target = ev.target || ev.srcElement;
    if(target.id === 'sDiv' && (!ev.toElement || !isParent(ev.toElement, target))){
        alert('鼠标移动出了父DIV元素。');
    }
}
}

声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
爸爸吃饭巧遇相亲对象是哪个电影里的 抖音设置仅自己可见为什么浏览量有4万多 从涿州到固安做什么车呀? 冷笑话段子简短爆笑简短冷笑话 手机怎么会玩不了新浪的微博呢? 民办大学是几本 民办本科分本几吗 联想电脑bios启动设置u盘启动联想台式电脑bios设置u盘启动 ...电脑主机怎么进入u盘启动模式联想电脑BIOS启动项如何设置U盘启动 联想台式电脑看不到u盘启动联想台式电脑怎么设置u盘启动 javascript点击和释放鼠标的事件是什么? sci 接受后,两个多月没消息,正常吗 sci最快多长时间能接收 好看的推理耽美小说,类似《sci》或者《坏道》这种,着重心理犯罪的 梦见嫦娥被一只小鸟吃了? 南师大一残疾学生一年发表4篇SCI论文是怎么回事? 我叫mary ,我梦见自己乘坐宇宙飞船登上了月球,看见嫦娥姐姐,吴刚哥哥与玉兔并与他们照相。翻译成 看图写话我的梦飞上月球看见嫦鹅姐姐 sci是不是审稿时间越长中的几率越大 梦见刮风看见嫦娥奔月 微信忘记支付密码,手机号也换了,没绑定银行卡怎么把零钱提现 请问微信支付密码忘记了输入多次被锁了里面的钱怎样才能取出 微信支付密码忘记了,要怎么把钱取出来 为什么别人不知道微信支付密码就可以吧钱拿走? 怎样做干煸豆角 谁知道干煸豆角怎么做啊? 干煸豆角最简单的做法步骤 由于鞋子太紧挤压到脚大拇指,造成一半的指甲与肉分离,好多年了,怎么处理? 鞋顶大拇指头是鞋小吗 微波炉热东西是上面先热还是下面先热? 引字的成语有哪些成语大全 关于引字的成语 引字的成语 成语引字开头 引字开头成语 引的成语有那些 关于引的成语有哪些 引字开头的成语有哪些 关于引(拉)的成语 引组词四字词语 1英寸等于多少厘米? 一英寸是多少厘米 一英寸是多少厘米? 1英寸等于多少公分 1吋等于多少厘米 家里的办公桌应该怎么摆放?下图是目前的摆放位置。本人男属猪? 办公桌物品摆放风水14年属猪办公桌什么方位好 属猪办公桌摆放风水 1983年属猪办公桌坐西向东好吗 属猪女性办公室财运如何摆放最好
  • 焦点

最新推荐

猜你喜欢

热门推荐