我试图在调整大小时触发一次函数。问题是条件语句由于某种原因每次都没有被执行。代码是
var old_width= $(window).width();
$(window).on('resize.3col',function(e){
clearTimeout(timer);
timer=setTimeout(function(){
var nw= $(window).width();
if((nw <= old_width) && (nw <= '940') && (nw >= '915') ){
appendList('resize.3col');
}
old_width= nw;
} , 500);
});
我使用settimeout的原因是因为我想获得新的宽度,如果我不使用它,新宽度与我不想要的旧宽度相同。如果我不使用settimeout,则条件有效。 编辑: 条件语句有时在其他时候不会发生。如何让它更顺畅?
答案 0 :(得分:0)
试试这段代码,看看是否有任何区别:
var $win = $(window),
oldWidth= $win.width(),
winResized = function(){
var newWidth= $win.width();
if (
newWidth <= oldWidth &&
newWidth <= 940 &&
newWidth >= 915
){
appendList('resize.3col');
}
oldWidth = newWidth;
},
timer;
$win.on('resize.3col',function(e){
clearTimeout(timer);
timer = setTimeout(winResized, 500);
});
答案 1 :(得分:0)
我使用相同的计时器变量来调用具有不同名称空间'3col','4col'和'5col'的resize事件。我还添加了if(timer)clearTimeout(timer);这改善了功能。谢谢:))