Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/33.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 如果窗口大小改变,如何停止功能?_Javascript_Jquery_Css - Fatal编程技术网

Javascript 如果窗口大小改变,如何停止功能?

Javascript 如果窗口大小改变,如何停止功能?,javascript,jquery,css,Javascript,Jquery,Css,我有功能运行取决于窗口大小和改变大小 function checksize() { if ( $(window).width() > 1220 ) { //sticker1220(); } else if ( $(window).width() > 640 & $(window).width() < 1219 ) { sticker950(); } else if ( $(window).width() <

我有功能运行取决于窗口大小和改变大小

function checksize() {
    if ( $(window).width() > 1220 ) {
        //sticker1220();
    } else if ( $(window).width() > 640 & $(window).width() < 1219 )  {
        sticker950();
    } else if ( $(window).width() < 639 ) {
        sticker320();
    }
};

checksize();
$(window).resize(checksize); 
函数checksize(){
如果($(窗口).width()>1220){
//标签1220();
}如果($(window.width()>640&$(window.width()<1219),则为else{
贴纸950();
}else if($(窗口).width()<639){
贴纸320();
}
};
checksize();
$(窗口)。调整大小(检查大小);

我发现,当我打开大小为1230px的窗口,然后将其更改为300px时,我有三个功能一起工作。我用css解决了这个问题。但是为了得到更好的代码,我想知道如何停止这个函数。

嗨,我有更多的解决方案。 1:通过使用设置超时清除超时

var timeout = null;
function checksize() {
   if(timeout){
        clearTimeout(timeout);
   }
   timeout = setTimeout(function(){
        //Your code logic here
   }, 1000);
}

checksize();
$(window).resize(checksize); 
2:通过使用javascript对象

function windowResize(){
      var onRunning = false, self = this;
      this.onResized = function(){
            if(onRunning){
                  //Your code logic here
                  onRunning = true;
            }
            onRunning = false;
      }
}

var _myObject = new windowResize();

function checksize() {
      _myObject.onResized();
}

checksize();
$(window).resize(checksize);

我希望它对你有更多帮助:)

不知道你在期待什么。。。。。你想知道如何删除代码吗?评论一下?删除它?解开它?重写函数?如果你有长时间运行的函数,有异步回调或者没有,我认为函数必须选择中止。i、 在回调中,如果它不再有用,就选择不继续。这里有一个更好的方法来编写该程序,但我仍然不确定你想知道什么。
sticker()
有什么作用?我猜你的贴纸函数不应该是3个不同的函数
sticker('medium')
,因此该函数会更改状态,而不是在其旁边运行另一个函数。不幸的是,此函数没有帮助。下面是代码,如果您查看控制台,您将看到在将表单320调整为640后,正在运行Stick320和Stick950函数,如果将窗口调整为1230px,您将看到所有三个函数都在运行。但我需要停止与当前窗口大小无关的函数