调整大小后运行jQuery函数5次

时间:2016-02-12 13:21:26

标签: jquery function flexslider window-resize

调整窗口大小后,是否可以仅运行5次功能?再次调整大小时,再次运行该功能5次。

$(window).bind('resize', function() { 
    setTimeout(function(){ 
        var slider = $('.wrapper .flexslider').data('flexslider');   
        slider.resize();
    }, 500);
});

此功能每0.5秒运行一次。但浏览器无法处理它并且运行此功能一次不足以正确调整flexslider的大小(我不知道为什么)。

2 个答案:

答案 0 :(得分:0)

是。添加一个回调函数,并根据需要多次递归调用它。

答案 1 :(得分:0)

这是评论中提到的去抖功能的一个例子。

function debounce(func, wait, immediate) {
        var timeout;
        return function() {
            var context = this, args = arguments;
            var later = function() {
                timeout = null;
                if (!immediate) func.apply(context, args);
            };
            var callNow = immediate && !timeout;
            clearTimeout(timeout);
            timeout = setTimeout(later, wait);
            if (callNow) func.apply(context, args);
        };
    };

    var myEfficientFn = debounce( function() {
       // Your resize code here, only fired once
    }, 500);

    window.addEventListener('resize', myEfficientFn);