Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript resize中的条件语句不在每次满足条件时触发_Javascript_Jquery_Resize - Fatal编程技术网

Javascript resize中的条件语句不在每次满足条件时触发

Javascript resize中的条件语句不在每次满足条件时触发,javascript,jquery,resize,Javascript,Jquery,Resize,我试图在调整大小时启动一个函数。问题是由于某种原因,条件语句并不是每次都被执行。代码是 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 &l

我试图在调整大小时启动一个函数。问题是由于某种原因,条件语句并不是每次都被执行。代码是

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);
});
var old_width=$(window.width();
$(窗口).on('resize.3col',函数(e){
清除超时(计时器);
计时器=设置超时(函数(){
var nw=$(窗口).width();

如果((nw尝试此代码,看看是否有任何差异:

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);
});
var$win=$(窗口),
oldWidth=$win.width(),
winResized=函数(){
var newWidth=$win.width();
如果(

newWidth我使用相同的计时器变量调用具有不同名称空间“3col”、“4col”和“5col”的调整大小事件。我还添加了if(timer)clearTimeout(timer);这改进了功能。谢谢:)

您应该替换这两个
$(window)。width()
使用
nw
在您的条件中调用时,是否确实只想在代码从较大的大小调整并且宽度在25px范围内时触发代码?如果是这样,只要
计时器
提前声明(即:
var timer;
),您的代码就可以工作