jQuery的!我没能正确使用_.debounce

时间:2016-12-20 13:10:07

标签: jquery underscore.js debounce

我尝试使用_.debounce()underscore.js功能,但我无法正常使用。

我试图去除窗口的滚动,如下所示,但我很困惑。

$(document).ready(function () {
 $(window).scroll(function (event) {
    var scrollCounter = $(this).scrollTop();
    if ( scrollCounter > 0 ) { //do stuff }
    else { //do stuff }
 });
});

1 个答案:

答案 0 :(得分:2)

从文档和示例中:

var lazyLayout = _.debounce(calculateLayout, 300);
$(window).resize(lazyLayout);

你可以像这样重构你的辩护:

function scrollHandler() {
    var scrollCounter = $(this).scrollTop();
    if ( scrollCounter > 0 ) { /* do stuff /* }
    else { /* do stuff */ }
};

$(document).ready(function () {

    var debouncedScroll = _.debounce(scrollHandler, 50);
    $(window).scroll(debouncedScroll);

});

更新:使用jsfilddle:https://jsfiddle.net/z635f7ys/