-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgetRelatedTarget.js
More file actions
34 lines (30 loc) · 1007 Bytes
/
getRelatedTarget.js
File metadata and controls
34 lines (30 loc) · 1007 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import resolveTextNode from './resolveTextNode'
/**
* 返回触发(鼠标)事件的 relatedTarget DOM 元素。
* ========================================================================
* MouseEvent.relatedTarget 只读属性是鼠标事件的次要目标(如果有)。相关的鼠标事件:
* mouseenter
* mouseleave
* mouseover
* mouseout
* dragenter
* dragleave
* ========================================================================
* @method getRelatedTarget
* @see https://developer.mozilla.org/en-US/docs/web/api/mouseevent/relatedtarget
* @param {Event} evt - Event 对象
* @return {HTMLElement} - Event 对象的 relatedTarget DOM 元素
*/
const getRelatedTarget = function (evt) {
let target = evt.relatedTarget
const type = evt.type
if (!target) {
if (type === 'mouseout') {
target = evt.toElement
} else if (type === 'mouseover') {
target = evt.fromElement
}
}
return resolveTextNode(target)
}
export default getRelatedTarget