您的浏览器过于古老 & 陈旧。为了更好的访问体验, 请 升级你的浏览器
Ready 发布于2014年09月03日 04:22

原创 jQuery Event.relatedTarget 属性详解

4967 次浏览 读完需要≈ 5 分钟

内容目录

relatedTarget属性用于返回当前事件涉及到的其他DOM元素,如果有的话。

对于"mouseout"事件,它指向被进入的元素;对于"mouseover"事件,它指向被离开的元素。

该属性属于jQuery的Event对象(实例)。

语法

jQuery 1.1.4 新增该属性。

eventObject.relatedTarget

返回值

relatedTarget属性的返回值是Element类型,返回当前事件涉及到的其他DOM元素(如果存在的话)。

某些事件可能涉及到多个元素。以"mouseout"为例,当我们将鼠标从某个元素上移出去的时候,鼠标实际上也进入了另外一个元素。relatedTarget属性就用于返回当事件触发时,该事件所涉及到的其他DOM元素。

  • 对于"mouseenter"、"mouseover"等事件而言,relatedTarget属性返回被离开的DOM元素。
  • 对于"mouseout"、"mouseleave"事件而言,relatedTarget属性返回被进入的DOM元素。
  • 对于"focus"事件而言,relatedTarget属性返回失去焦点的DOM元素(如果有的话)。
  • 对于"blur"事件而言,relatedTarget属性返回获得焦点的DOM元素(如果有的话)。
  • 如果当前事件没有涉及到其他元素,则返回nullundefined(视情况而定)。

示例&说明

注意relatedTarget属性的返回值是不确定的,这取决于触发事件的具体行为。

以下面的代码为例:
如果鼠标从a1向右移动到<span>元素(上,则返回该<span>元素(n3);
如果鼠标从a1向下移动到<div>元素上,则返回该div元素(n1);
如果鼠标从a1向左移动到<p>元素上,则返回该<p>元素(n2)。

对于a2而言,它可以返回html、body或div等元素的其中之一。

<div id="n1" style="height: 100px; border: 1px solid #000;" >
	<p id="n2">段落文本<a id="a1" href="https://codeplayer.vip">CodePlayer</a><span id="n3">专注于编程开发技术分享</span>	</p>
</div>
<a id="a2" href="https://codeplayer.vip">CodePlayer</a>
<div id="message"></div>


<script type="text/javascript">
$("a").bind("mouseout", function(event) {
    $("#message").text(event.relatedTarget ? event.relatedTarget.tagName : "null" );
} );
</script>

运行代码

  • CodePlayer技术交流群1
  • CodePlayer技术交流群2

0 条评论

撰写评论

打开导航菜单