窗口大小调整仅有效一次
window resize only works once
我在window.resize事件中有一个函数,它运行良好,除此之外它似乎只工作一次。如果用户再次调整窗口大小,则不会执行该函数。这是代码:
$(window).resize(function() {
var wait = setInterval(function () {
if (!$(currentBanner, loading).is(":animated")) {
clearInterval(wait);
loading.stop().fadeOut(300, function () {
if ($('#banner').css('display') == 'block'){
setTimeout(function() {
bannerInit();
}, 800);
startInterval();
if (initialLoad) {
initialLoad = false;
next.slideDown();
previous.slideDown();
}
}
});
}
}, 200);
}).resize();
有人知道如何确保每次调整窗口大小时都执行该函数吗?
我不知道
你的意图是什么,但如果是在窗口调整大小后延迟执行,你应该将 setInterval 更改为 setTimeout
setInterval 是一个无限循环,它会运行,直到你告诉它停止并且 setTimeout 只执行一次,它将等待 x 毫秒执行。
另外,您不需要调用"resize()"事件,每次由于任何原因(用户调整大小或最大化等)更改窗口大小时都会触发该事件。
$(window).on("resize",function() {
var wait = setTimeout(function () {
if (!$(currentBanner, loading).is(":animated")) {
clearInterval(wait);
loading.stop().fadeOut(300, function () {
if ($('#banner').css('display') == 'block'){
setTimeout(function() {
bannerInit();
}, 800);
startInterval();
if (initialLoad) {
initialLoad = false;
next.slideDown();
previous.slideDown();
}
}
});
}
}, 200);
});
这是因为您在事件定义结束时调用.resize()
。
尝试更改为:
$(window).resize(function () {
//....
});
$(window).resize();
相关文章:
- Javascript返回值只在循环中返回一次
- Jquery FadeIn FadeOut 只工作一次
- Javascript html每点击一次就会更改url
- 如何在chrome扩展中存储数据/结果,以及如何使用setTimeout使其只被调用一次
- Rails操作只调用一次,但我在ajax中每秒钟都调用一次
- jQuery滚动功能只工作一次
- 刷新导致我的帖子“;张贴“;再一次
- 引导程序崩溃一次只能看到一个
- 有没有一个抽象层,这样我就可以集成一次,然后使用pusher、pubnub或faye
- 加载器组件仅加载一次
- 根据Angular.JS上一次的内容禁用选择
- 一次又一次地在新的和相同的选项卡中打开一个url
- 只在宽度以下和宽度以上各准备一次
- 窗口大小调整仅有效一次
- 只添加一次调整大小事件处理程序
- 让jQuery代码在窗口中加载,滚动和调整大小只触发一次
- jQuery窗口大小调整触发只触发一次
- Fire脚本一次与JQuery窗口大小调整和媒体查询
- 火灾调整事件一次不基于时间
- 在 jointjs 图中一次调整所有单元格(矩形)的大小