让我怎么说你好,setTimeout()和clearTimeout()
这俩函数,一个是延时循环执行函数,一个是解除执行函数.
setTimeout()的作用是让程序一段时间内反复执行,带的参数一个是函数,后面一个是毫秒数(1000为1秒)
现在的要求是:需要延时执行一个让层消失的函数,但是当这个函数还在排队执行的过程中,一个新的函数执行,一个让新的层出现的函数..但是让新的层出现又需要延时,但是在新层出现之前,又会调用clearTimeout()来解除之前不断循环的让层hide的函数,否则层不可能显示出来.但是延时函数还在延时的过程中,所以还没有顺利的让层消失就被取消掉了..
因此出现了连续存在但内容变化的层,但是如果要让层顺利的消失,又考虑消失等待的话,就又需要一个延时函数来执行解除执行的函数,但是这个延时解除执行函数的函数又需要一个解除执行的函数来来解除,而且还不能解除的太快..因此又需要延时...如此反复...orz
我说...Javascript里面就没有一个单纯的执行延时的函数么?为啥非要搞个不断执行...难道这样很方便么...仅仅只是少些了一个while(1)循环而已...orz
现在唯一的解决方式就是在clearTimeout()之外放一个死循环反复的判断层是否已经消除,如果消除了则执行clearTimeout()并且break掉...真麻烦,估计看页面卡的都不行了...orz
setTimeout()的作用是让程序一段时间内反复执行,带的参数一个是函数,后面一个是毫秒数(1000为1秒)
现在的要求是:需要延时执行一个让层消失的函数,但是当这个函数还在排队执行的过程中,一个新的函数执行,一个让新的层出现的函数..但是让新的层出现又需要延时,但是在新层出现之前,又会调用clearTimeout()来解除之前不断循环的让层hide的函数,否则层不可能显示出来.但是延时函数还在延时的过程中,所以还没有顺利的让层消失就被取消掉了..
因此出现了连续存在但内容变化的层,但是如果要让层顺利的消失,又考虑消失等待的话,就又需要一个延时函数来执行解除执行的函数,但是这个延时解除执行函数的函数又需要一个解除执行的函数来来解除,而且还不能解除的太快..因此又需要延时...如此反复...orz
我说...Javascript里面就没有一个单纯的执行延时的函数么?为啥非要搞个不断执行...难道这样很方便么...仅仅只是少些了一个while(1)循环而已...orz
现在唯一的解决方式就是在clearTimeout()之外放一个死循环反复的判断层是否已经消除,如果消除了则执行clearTimeout()并且break掉...真麻烦,估计看页面卡的都不行了...orz
评论
发表评论