.jach上的.each函数

时间:2017-02-02 20:43:32

标签: jquery each

我正在编写一些东西,我想让不同的物体在鼠标移动后旋转。

代码有点放慢了页面的速度,所以我试图对其进行优化。

下面是调用函数的原始代码:

var arrow1 = $('#arrowD1');
var arrow2 = $('#arrowD2');
var arrow3 = $('#arrowD3');
var arrow4 = $('#arrowD4');

$(document).on('mousemove', function(e){
    rotateOnMouse(e, arrow1);
    rotateOnMouse(e, arrow2);
    rotateOnMouse(e, arrow3);
    rotateOnMouse(e, arrow4);
});

而不是为每个元素调用函数,我只想为具有相同类的所有元素提供一个函数:

$(document).on('mousemove', function(e){
  $('.arrow-designers').each(rotateOnMouse(e, this));
});

[更新的Codepen] http://codepen.io/thalesribeiro/pen/KaRmLB

语法中是否缺少任何内容?

干杯, Ť

1 个答案:

答案 0 :(得分:2)

您正在调用该函数一次并将结果传递给each,这是行不通的。代替:

$(document).on('mousemove', function(e) {
  $('.arrow-designers').each(function(arrow) {
    rotateOnMouse(e, arrow));
  });
});

与jQuery和Lodash / Underscore中的许多迭代器函数一样,您需要传递each一个为每个元素计算的函数。 f(this)function() { f(this) }之间存在很大差异。