relatedTarget、fromElement、toElement相关元素

本文深入探讨了在网页开发中处理鼠标悬停(mouseover)与移出(mouseout)事件的机制,包括事件的基本概念、浏览器的实现方式以及如何通过JavaScript获取相关元素。重点介绍了不同浏览器对相关元素的支持差异,以及实例代码演示了如何实现这些功能。

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

在发生mouseover与mouseout事件时,还会涉及更多元素。这两个事件都会涉及把鼠标指针从一个元素的边界之内移到另一个元素的边界之内。对mouseover事件而言,事件主目标是获取光标元素,而相关元素就是那个失去光标的元素。类似的,对于mouseout事件,主目标是失去光标的元素,而相关元素是获得光标的元素。

DOM通过event对象的relatedTraget属性提供了相关元素的信息。这个属性只对于mouseover和mouseout事件才包含值;对于其他事件,它的属性值就为null。IE不支持relatedTarget属性,但是提供了保存同样信息的不同属性。在mouseover事件触发时,IE的fromElement属性中保存了相关元素;当mouseout事件触发时。IE的toElement属性中保存着相关属性值。具体实例如下:




//事件  移入移出
function addEvent(obj,type,fn){
if(obj.addEventListener){
obj.addEventListener(type,fn,false);
}else if(obj.attachEvent){
obj.attachEvent('on'+type,fn);
}
}
function removeEvent(obj,type,fn){
if(obj.removeEventListener){
obj.removeEventListener(type,fn,false);
}else if(obj.detachEvent){
obj.detachEvent('on'+type,fn);
}
}
addEvent(window,'load',function(){
var box=document.getElementById('box');
addEvent(box,'mouseover',function(evt){
alert(getTarget(evt));
});
});
function getTarget(evt){
var e=evt||window.event;
if(e.srcElement){//IE
if(e.type=='mouseover'){
return e.fromElement.tagName;
}else if(e.type=='mouseout'){
return e.toElement.tagName;
}
}else if(e.relatedTarget){//W3C
return e.relatedTarget;
}
}









评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值