简化函数 jquery

simplify functions jquery

我有这些 "functions" 在块中针对各种元素重复。 如何简化使用 "var"?

谢谢你:)

例如:

$('#test1').waypoint(function (direction) {
  if (direction === 'down') {
    $(this).addClass("here");
    $(this).prevAll().removeClass("here");
    $(this).prev().prev().addClass("here_pre");
    $(this).next().next().addClass("here_pre");
  },
});

我想得出这样的解决方案:

var active_here = $(this).addClass("here"),
                  $(this).prevAll().removeClass("here"),
                  $(this).prev().prev().addClass("here_pre"),
                  $(this).next().next().addClass("here_pre");

最后回忆起来是这样的:

$('#test1').waypoint(function (direction) {
  if (direction === 'down') {
  active_here;
  },
});

$('#test2').waypoint(function (direction) {
  if (direction === 'up') {
  active_here;
  },
});

etc... etc... etc...

为什么不直接创建一个函数,然后在函数内部调用该函数?

function active_here(this) {
      //code here..
}

Javascript可变函数(也可以声明为普通函数):

var active_here = function($elem){
    $elem.addClass("here");
    $elem.prevAll().removeClass("here");
    $elem.prev().prev().addClass("here_pre");
    $elem.next().next().addClass("here_pre");
}

通话中:

$('#test1').waypoint(function (direction) {
  if (direction === 'down') {
    active_here($(this));
  },
});

$('#test2').waypoint(function (direction) {
  if (direction === 'up') {
    active_here($(this));
  },
});