Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.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 setInterval函数中的onClick切换类_Javascript_Jquery_Setinterval - Fatal编程技术网

Javascript setInterval函数中的onClick切换类

Javascript setInterval函数中的onClick切换类,javascript,jquery,setinterval,Javascript,Jquery,Setinterval,怎么了? 过渡滞后太多,有时会停止工作 怎么了 问题是,您以450毫秒的间隔绑定了太多的单击事件,这将导致浏览器消耗太多内存,最终浏览器将没有响应 另一个值得注意的是,您将得到绑定事件数的“n”。所以,由于它是一个连续的过程,所以在每次迭代时,它将绑定一个事件,这意味着如果两次迭代,那么将执行两次回调 我想你可以这样做: setInterval(function () { $("#bound").click(function () { $(".top").toggleClass("one

怎么了? 过渡滞后太多,有时会停止工作

怎么了

问题是,您以450毫秒的间隔绑定了太多的
单击
事件,这将导致浏览器消耗太多内存,最终浏览器将没有响应

另一个值得注意的是,您将得到绑定事件数的“n”。所以,由于它是一个连续的过程,所以在每次迭代时,它将绑定一个事件,这意味着如果两次迭代,那么将执行两次回调

我想你可以这样做:

setInterval(function () {
$("#bound").click(function () {
    $(".top").toggleClass("one");
    $(".middle").toggleClass("two");
    $(".bottom").toggleClass("three");
    $(".nav-menu").toggleClass("menu-show");
});}, 450);
$(“#绑定”)。单击(函数(){

setTimeout(function(){/如果需要单击事件后的延迟,应将
setInterval
函数放入
click
函数中:

$("#bound").click(function () {
    setTimeout(function () { // <------change it to setTimeout if u don't make it infinite
        $(".top").toggleClass("one");
        $(".middle").toggleClass("two");
        $(".bottom").toggleClass("three");
        $(".nav-menu").toggleClass("menu-show");
    }, 450);
});

为什么使用setInterval?为什么要使用setInterval?你到底想实现什么?就像下面的回答中提到的@Jai一样,setInterval绑定了太多的
点击
事件,这会减慢浏览器的速度。所以我们需要知道你的目标是什么,当我点击菜单图标时,它应该等待450毫秒,然后触发切换类n操作,当我再次单击菜单图标时,它应该再等待450毫秒。@PraveenBisht好的,然后您将根据我的回答使用
setInterval
进行更改,它将对每个事件仅执行一次。将setInterval放入其中将触发持续时间为450的无限转换。是的,与您当前的情况相同我想您可以使用
setTimeout
$("#bound").click(function () {
  setInterval(function () {
    $(".top").toggleClass("one");
    $(".middle").toggleClass("two");
    $(".bottom").toggleClass("three");
    $(".nav-menu").toggleClass("menu-show");
  }, 450);
});