封装函数 hoverEvent

// 鼠标hover事件(已防抖处理)
function hoverEvent({ selector, mouseenter, mouseleave }) {
  let hoverTimeout;
  $('body')
    .on('mouseenter', selector, function (e) {
      clearTimeout(hoverTimeout);
      hoverTimeout = setTimeout(() => {
        if (typeof mouseenter == 'function') mouseenter.call(this, e);
      }, 100);
    })
    .on('mouseleave', selector, function (e) {
      clearTimeout(hoverTimeout);
      if (typeof mouseleave == 'function') mouseleave.call(this, e);
    });
}

使用 hoverEvent (mouseenter、mouseleave 中的 this、e 指向原生属性)

  hoverEvent({
    selector: '.hover-el',
    mouseenter: function (e) {},
    mouseleave: function (e) {},
  });

更多推荐