如何确认$(window).resize()已完成?

bakdfkuk 2011-12-18 11:45:08
现在我想用JQUERY来控制窗口的大小改变以后做一个操作,但是resize是一直在改变的,我设置了一个函数,目前只alert一个东西,结果页面大小一改变的时候,页面几乎是死了,因为大小一直在改变,我的事件就一直在执行,我只想要在改变完成以后再执行代码,我又不能在resize的函数中设置了setTimeOut函数,那又不合逻辑,要设置在外面,又不知道如何来操作,请教各位高手,如何来确认窗口大小已经改变完成,我要怎么来改?
...全文
753 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiabajiaba888 2013-01-11
  • 打赏
  • 举报
回复
我能问一下你最后怎么解决的,我现在遇到这个问题了
bakdfkuk 2011-12-18
  • 打赏
  • 举报
回复
我加了一个变量以后貌似可以变相的解决,但是貌似不太准确:

var oldHeight;
$(window).resize(GetPageSize);
function GetPageSize() {
if ($(window).height() != oldheight) {
oldheight = $(window).height();
} else {
//这里我放了很多的变态的代码,但是好像精确性不是太好
alert("test");
}
}

希望有一会完美的办法解决,急死我了。。。。。。目前这个还是不理想,jquery中有一个:last是过滤最后一个,可不可以对触发事件的最后应用?
bakdfkuk 2011-12-18
  • 打赏
  • 举报
回复
完了,我在settimeout中的函数比alert还夸张,看来得另想办法了
sohighthesky 2011-12-18
  • 打赏
  • 举报
回复
写错了
var timer = 0;
$(window).resize(function(){
clearTimeout(timer);
timer = setTimeout(function() {
//do some sth, 但是别用alert之类的函数;
}, 200);
});
sohighthesky 2011-12-18
  • 打赏
  • 举报
回复
没有,resize事件 ,当窗口改变时触发的次数叫恐怖,
一般都 是用var timer = 0;
$(window).resize(function(){
clearTimeout(timer);
timer(function() {
//do some sth, 但是别用alert之类的函数;
}, 200);
});
一個程序員 2011-12-18
  • 打赏
  • 举报
回复
js目前是没办法监控到鼠标对浏览器的操作

其实你需要的只是browser.onmouseup + window.onresize

可惜没有第一个事件。

用timer模拟吧。

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧