首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >防止窗口大小调整上的无限循环

防止窗口大小调整上的无限循环
EN

Stack Overflow用户
提问于 2014-03-10 23:18:55
回答 1查看 3.4K关注 0票数 2

通过将resize函数链接到初始化滑块对象上,我能够在响应网格中很好地调整挠性滑块元素的大小。通过在窗口调整大小时运行它,我可以得到一个非常敏锐的响应幻灯片:

代码语言:javascript
复制
var timer;
$(window).resize(function(){
    clearTimeout(timer);
    timer = setTimeout( function(){
        console.log('resize');
        $('#slider-2').resize();
    }, 500)
});

但是,将$('#slider-2').resize();放在$(window).resize的匿名函数中实际上会导致无限循环;单击此处,打开控制台并调整窗口大小以查看。

我怎样才能阻止这个循环?窗口没有调整大小,所以我没想到会发生这种情况。我可以排除选择器中的$('#slider-2')吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-10 23:28:36

在Javascript中,事件会引发DOM。当您调整窗口的大小时,就会在滑块上触发一个调整大小的事件,这会使DOM返回到window对象,并触发另一个调整大小的事件。您需要确保#滑块-2上的调整大小事件处理程序停止传播。

请查看以下代码:

代码语言:javascript
复制
$('#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)
}); 
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22313398

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档