我有一个jquery动画,可以递归调用自己。为了使其时间动态,我在使用trigger
时传递了其他参数。代码是:
var $forward = function(event, settings) {
$(this).stop();
if ($(this).scrollTop() >= $(this).prop('scrollHeight') / 2) {
$(this).scrollTop($(this).scrollTop() - $(this).prop('scrollHeight') / 2);
}
$scroll_step = $(this).prop('scrollHeight') / 2 - $(this).scrollTop();
$(this).animate({
scrollTop: $(this).prop('scrollHeight') / 2
}, (1 / (!!settings ? settings.speed : $settings.speed)) * $scroll_step * 1000, "linear", function() { $forward(event, settings) });
};
在右下角,您可以看到function() { $forward(event, settings) }
作为回调。我想保留secind,第三等递归的设置值。我使用带触发器的动态速度:
$(".marquee").on("forward", $forward);
$(".marquee").eq(0).trigger("forward", {speed: 50});
似乎运作良好。我的问题是回调中的event
是否会被第一行event
的{{1}}参数覆盖?
我应该将回调代码更改为:var $forward = function(event, settings)