gpt4 book ai didi

jquery - 防止窗口调整大小时出现无限循环

转载 作者:行者123 更新时间:2023-12-01 03:40:17 25 4
gpt4 key购买 nike

通过将 resize 函数链接到初始化 slider 对象上,我可以创建一个 flexslider元素在响应式网格中很好地调整大小。通过在窗口大小调整时运行它,我可以获得非常清晰的响应式幻灯片:

var timer;
$(window).resize(function(){
clearTimeout(timer);
timer = setTimeout( function(){
console.log('resize');
$('#slider-2').resize();
}, 500)
});

但是,将 $('#slider-2').resize(); 放在 $(window).resize' 匿名函数中实际上会导致无限循环; click here, open the console and resize the window to see. .

如何防止这种循环?窗口没有调整大小,所以我认为不会发生这种情况。我可以在选择器或其他内容中排除 $('#slider-2') 吗?

最佳答案

在 Javascript 中,事件在 DOM 中冒泡。当您调整窗口大小时,您会触发 slider 上的调整大小事件,然后该事件会沿着 DOM 向上返回到窗口对象并触发另一次调整大小。您需要确保 #slider-2 上的调整大小事件处理程序停止传播。

查看此代码:

$('#slider-2').on('resize',function(event){
event.stopPropagation()
});

var timer;
$(window).resize(function(){
clearTimeout(timer);
timer = setTimeout( function(){
console.log('resize');
$('#slider-2').resize();
}, 500)
});

关于jquery - 防止窗口调整大小时出现无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22313398/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com