Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.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/7/jsf/5.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 - Fatal编程技术网

Javascript 内部循环只运行一次,包含的循环无休止地运行

Javascript 内部循环只运行一次,包含的循环无休止地运行,javascript,jquery,Javascript,Jquery,恐怕没有问题 我有一个循环,可以运行和旋转时钟的指针,还有一个内部循环,可以检查指针的角度是否为90、180、270和360。在这4个角度上,将显示相应的div,并删除其同级。我想要的是手的循环和循环,但是角度检查只在整个360度循环一次。当指针通过角度时,它正确地显示和删除div,但在时钟第一次旋转后不会继续 我显然在某个地方搞砸了,肯定会有更有效的方法来做这一切。我正在使用jQueryRotate.js进行旋转。谢谢你抽出时间 jQuery(document).ready(function(

恐怕没有问题

我有一个循环,可以运行和旋转时钟的指针,还有一个内部循环,可以检查指针的角度是否为90、180、270和360。在这4个角度上,将显示相应的div,并删除其同级。我想要的是手的循环和循环,但是角度检查只在整个360度循环一次。当指针通过角度时,它正确地显示和删除div,但在时钟第一次旋转后不会继续

我显然在某个地方搞砸了,肯定会有更有效的方法来做这一切。我正在使用jQueryRotate.js进行旋转。谢谢你抽出时间

jQuery(document).ready(function() {
    var angle = 0;
    setInterval(function() {
        jQuery("#hand").rotate(angle);
        function movehand() {
            if (angle == 90) {
                jQuery("#intervention").fadeIn().css("display","block").siblings().css("display","none");
            } else if (angle == 180) {
                jQuery("#management").fadeIn().css("display","block").siblings().css("display","none");
            } else if (angle == 270) {
                jQuery("#prevention").fadeIn().css("display","block").siblings().css("display","none");
            } else if (angle == 360) {
                jQuery("#reaction").fadeIn().css("display","block").siblings().css("display","none");
            } else {
                movehand;
            }
        };
        movehand();
        angle+=1;
    },10);
});

一旦角度达到360度,您不需要将其重置为0吗


我以为它已经在这样做了。当我检查元素时,旋转似乎重置并再次从0开始,而不是从361、362等开始。可能是因为旋转函数的角度不能大于360,所以它从0开始,但角度的实际值将为361、362,我尝试了Gyan的解决方案,将角度重置为0 bu,从而停止完全运行角度检查。我会试着编一把小提琴,然后把它贴出来。他的解决方案有点失败了。在原始代码中,在
angle+=1之后添加
f(angle>360){angle=0;}
而且它应该可以工作。这里有一个运行的小提琴。它只是为了测试而加速的。
jQuery(document).ready(function(){
var angle = 0;
setInterval(function(){
     jQuery("#hand").rotate(angle);
     function movehand(){
      if (angle == 90) {
      jQuery("#intervention").fadeIn().css("display","block").siblings().css("display","none");
    } else if (angle == 180) {
      jQuery("#management").fadeIn().css("display","block").siblings().css("display","none");
    } else if (angle == 270) {
      jQuery("#prevention").fadeIn().css("display","block").siblings().css("display","none");
    } else if (angle == 360) {
      jQuery("#reaction").fadeIn().css("display","block").siblings().css("display","none");
angle=0;
    } else {movehand;}
};

      angle+=1;
},10);
});