1

我想将jQuery Isotope shuffle 方法设置为每 30 秒对加载的 DOM 元素执行一次动画随机播放,前提是有人在加载了插件的页​​面上。

我已经成功地将动画绑定到一个事件,但是当我使用or.hover()时我似乎无法让它触发。无论用户交互/输入如何,我都希望动画触发。setInterval().queue()

var iso_shuffle = function() {
    $('#isotope').isotope('shuffle');
}

setInterval(iso_shuffle(), 2500);

为什么前面的代码不会触发随机化,但这样做:

$('#isotope').hover(function() {
    iso_shuffle()
});

干杯

4

2 回答 2

4

iso_shuffle()立即调用该函数。该函数不返回任何内容。所以你setInterval实际上是在做相当于:

setInterval(undefined, 2500);

您想使用函数名称作为回调setInterval

setInterval(iso_shuffle, 2500);
于 2012-12-26T17:23:55.160 回答
2

您需要传递函数本身,而不是其返回值:

setInterval(iso_shuffle, 2500);
于 2012-12-26T17:23:47.930 回答