事件对象是否被覆盖?

时间:2017-03-24 16:52:18

标签: javascript jquery javascript-events dom-events

我有一个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)

0 个答案:

没有答案