relatedTarget、fromElement、toElement相关元素

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

DOM通过event对象的relatedTarget属性提供了相关元素的信息。这个属性只对于mouseover和mouseout事件才包含值;对于其他事件,这个属性的值是null。IE不支持realtedTarget属性,但提供了保存着同样信息的不同属性。在mouseover事件触发时,IE的fromElement属性中保存了相关元素;在mouseout事件出发时,IE的toElement属性中保存着相关元素。可以把下面这个跨浏览器取得相关元素的方法添加到EventUtil对象中:

var EventUtil = {
    getEvent: function (event) {
        return event ? event : window.event;
    },
    getTarget: function (event) {
        return event.target || event.srcElement;
    },
    addHandler: function (element, type, handler) {
        if (element.addEventListener) {
            element.addEventListener(type, handler, false);
        } else if (element.attachEvent) {
            element.attachEvent("on" + type, handler);
        } else {
            element["on" + type] = handler;
        }
    },
    getRelatedTarget: function (event) {
        if (event.relatedTarget) {
            return event.relatedTarget;
        } else if (event.toElement) {
            return event.toElement;
        } else if (event.fromElement) {
            return event.fromElement;
        } else {
            return null;
        }
    }
};
var div = document.getElementById("myDiv");
EventUtil.addHandler(div, "mouseout", function (event) {
    event = EventUtil.getEvent(event);
    var target = EventUtil.getTarget(event);
    var relatedTarget = EventUtil.getRelatedTarget(event);
    alert("Moused out of " + target.tagName + " to " + relatedTarget.tagName);
});

这个例子的<div>元素的mouseout事件注册了一个事件处理程序。当事件触发式,会有一个警告框显示鼠标移除和移入的元素信息。

relatedTarget、fromElement、toElement相关元素

时间: 2024-11-13 03:33:32

relatedTarget、fromElement、toElement相关元素的相关文章

【2017-03-31】JS-DOM操作:操作属性、彩虹导航栏、定时器、操作内容、创建元素并添加、操作相关元素

一.操作属性 1.什么是属性: <div class="div" id="div1" style="" ></div> 其中class   id   style   都是这个div的属性 <input type="button" value="这是一个按钮" disabled="disabled"  aa="haha" /> dis

JS——操作内容、操作相关元素

操作内容:普通元素.innerHTML = "值": 会把标记执行渲染普通元素.innerText = "值": 将值原封不动的展示出来,即使里面有标记 var s = 普通元素.innerHTML; 会把此元素下的所有文本及标记代码取出来.var s = 普通元素.innerText; 值会把此元素下的文本取出来,标记不予理会. 表单元素 - 只能使用value 来取值赋值表单元素.value = "值";var s = 表单元素.value;

fieldset:组合表单中的相关元素

<html> <head> <meta http-equiv="Content-Type" content="text/html"; charset="utf-8"> </head> <body> <form> <fieldset> <legend>Personal information:</legend> <div>你爱是啥

2017-3-31 操作属性 定时器 操作内容 操作相关元素 元素创建添加删除

(一)操作属性 1.对象.setAttribute('属性名','属性值');  --- 添加属性 例子:把所有class为div的,字体改为30px: var a document.getElementById('div'); for(var i=o;i<a.length;i++){ a[i].setAttribute('style','font-size=30px');或者用a[i].style.fontSize='30px'; } 2.对象.getAttribute('属性名'); - 获

HTML笔记(五)表单&lt;form&gt;及其相关元素

表单标签<form> 表单是一个包含表单元素的区域. 表单元素是允许用户在表单中输入信息的元素. 输入标签<input> 输入标签的输入类型由其类型属性type决定.常见的输入类型如下: 文本域Text Field <input type="text" name="inputname" /> 单选按钮Radio Button 注意:只能从中选其中一个. <form> <input type="radio

document--操作相关元素(js简短汇总3)

相关元素:obj为当前选定元素,用id获取:script全部放在html后面 1.obj.nextSibling下一个元素(注意回车与空格) 2.obj.previousSibling上一个元素(注意回车与空格) 3.obj.parentNode父级元素.可以改变整体的格式style,内容方面不做改变. 4.obj.childNodes所有的子级元 属性: body内的内容: <body><div><div>aaa</div><div id="

相关元素操作

五.相关元素操作: var a = document.getElementById("id");找到a: var b = a.nextSibling,找a的下一个同辈元素,注意包含空格:(弟) var b = a.previousSibling,找a的上一个同辈元素,注意包含空格:(兄) var b = a.parentNode,找a的上一级父级元素:(父) var b = a.childNodes,找出来的是数组,找a的下一级子元素:(子) var b = a.firstChild,

20150423 DOM相关元素操作

相关元素:1.obj.nextSibling下一个元素(注意回车与空格)2.obj.previousSibling上一个元素(注意回车与空格)3.obj.parentNode父级元素.4.obj.childNodes所有的子级元 属性: obj.firstChild obj.lastChild obj.childNode[n] 方法: obj.appendChild(元素对象); //元素对象,不是一个HTML的字符串 d.insertBefore(要插入的元素对象,相对于哪个元素); d.re

HTML笔记三,表单相关元素和属性

表单元素 <form>:用于生成输入表单,该元素不可视化 action:指定当前表单提交的地址,必填 method:指定提交表单时发送何种类型的请求,post或者get,一般post,必填:其中GET方式可以在地址栏种看到传送的数据,POST方法看不到较安全 enctype:指定对表单内容进行编码的字符集 name:名称 target:以何种方式打开目标url,_self,_blank,_top,_parent四个中的一个 <input>: type= text:单行文本框 pas