在做mouseenter与mouseleave的兼容时,我们需要用到事件对象的relatedTarget属性

function getRelatedTarget(e) {
    var t = e.relatedTarget
    if (t) {
        return t
    }
    return e.fromElement === e.target ?
        e.toElement :
        e.fromElement;
}
String("mouseenter,mouseleave").replace(/\w+/g, function (type) {
    eventHooks[type] = function (dom) {
        var eventType = type === "mouseenter" ? "mouseover" : "mouseout";
        addEvent(dom, eventType, function (e) {
            var t = getRelatedTarget(e)
            if (!t || (t !== dom && !dom.contains(t))) {
                dispatchEvent(e, type, true);
            }
        });
    };
});

相关文章:

  • 2022-12-23
  • 2021-12-28
  • 2021-11-20
  • 2021-09-29
  • 2021-11-19
  • 2022-01-18
  • 2021-06-24
  • 2022-02-12
猜你喜欢
  • 2021-09-19
  • 2021-07-06
  • 2021-05-19
  • 2021-07-04
  • 2022-03-05
  • 2021-08-04
  • 2022-12-23
相关资源
相似解决方案