调整窗口大小后,是否可以仅运行5次功能?再次调整大小时,再次运行该功能5次。
$(window).bind('resize', function() {
setTimeout(function(){
var slider = $('.wrapper .flexslider').data('flexslider');
slider.resize();
}, 500);
});
此功能每0.5秒运行一次。但浏览器无法处理它并且运行此功能一次不足以正确调整flexslider的大小(我不知道为什么)。
答案 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);