我如何结合悬停事件背后的常见行为?

问题描述 投票:0回答:1

[当我用jquery编写一个悬停事件时,我想对mouseenter和mouseleave都做一个常见的行为。

$foo.hover(
  function () {
    common_before_process();
    // ...
    common_after_process();
  },
  function () {
    common_before_process();
    // ...
    common_after_process();
  }
);

我已在此处将处理过程提取为一个函数,但是我认为,如果将这两个过程从事件处理程序中完全删除,将更易于阅读。所以问题是,有没有一种方法可以简洁地描述上述功能提取的通用过程?

例如,我想要的是以下行为(仅一个示例):

$foo.hoverAfter(common_after_process);
$foo.hoverBefore(common_before_process);

$foo.hover(
  function () {
    // ...
  },
  function () {
    // ...
  }
);
javascript jquery jquery-hover
1个回答
0
投票

我建议将回调传递给通用函数。类似于:

function toggleHover (callback) {
  common_before_process();
  callback();
  common_after_process();
}

function methodForHoverOn () {}
function methodForHoverOff () {}

$foo.hover(
  function () {
    toggleHover(methodForHoverOn);
  },
  function () {
    toggleHover(methodForHoverOff);
  }
);

一个方法执行通用逻辑,并执行传入的闭包,该闭包随您需要而变化。

© www.soinside.com 2019 - 2024. All rights reserved.