`

setTimeout与.delay()的区别

 
阅读更多
之前认为setTimeout与.delay()的用法一样只是延时执行一些方法,后来用的时候发现其实是有区别的
我应用的场景是点击某一按钮时显示一个toast条,两秒后自动消失;如果两秒内再次点击按钮关闭当前toast条,重新显示toast条。
<div class="top-tip">
   <div class="alert alert-danger" id="nobody_tip" role="alert" style="display: none;" name='tip'>
      <span>没有符合要求的用户,请重新筛选</span>
   </div>
</div>

<div class="top-tip">
   <div class="alert alert-danger" id="nobody_tip" role="alert" style="display: none;" name='tip'>
      <span>没有符合要求的用户,请重新筛选</span>
   </div>
</div>


点击按钮后执行的js代码
function show_nobody_tip() {
        $("#nobody_tip").fadeOut(0);
        $("#nobody_tip").fadeIn(100);
        setTimeout(function () {
            $("#nobody_tip").fadeOut(1000)
        }, 2000)
    }


用setTimeout方法是按预想的执行,但是用$("#nobody_tip").delay(2000).fadeOut(1000)就会出现再次点击按钮时当前toast条不会先关闭的问题,为什么会出现这样的问题呢,是因为调用.delay()后fadeOut(1000)已经排在队列中,delay执行前再次操作这个元素时还是会先执行.delay()后的fadeOut(1000),而不会执行fadeOut(0)。
分享到:
评论

相关推荐

    jQuery-.delay-Documentation

    不同于JavaScript的`setTimeout()`或`setInterval()`,`.delay()`直接与jQuery的动画队列整合,因此更适用于连续动画序列。这个函数接受一个以毫秒为单位的时间参数,例如`.delay(1000)`会延迟1秒钟。 在描述中提到...

    JavaScript_window.setTimeout()_的详细用法

    #### 四、`window.setTimeout()`与`window.setInterval()`的区别 虽然`setTimeout`和`setInterval`都用于延迟执行代码,但它们之间有一个关键的区别:`setInterval`会重复执行指定的函数,直到被清除或窗口关闭;而...

    Javascript定时器(二)——setTimeout与setInterval

    其语法与`setTimeout`相似: ```javascript setInterval(function, interval, param1, param2, ...); ``` 其中,`interval`是执行间隔的时间(以毫秒为单位)。下面是一个每秒更新计数器的例子: ```javascript ...

    JS中的setTimeout和setInterval的区别JS中的setTimeout和setInterval的区别

    ### JS中的setTimeout与setInterval的区别 在JavaScript编程中,`setTimeout`与`setInterval`是两个非常常用的函数,用于控制代码执行的时间间隔。虽然它们在功能上有一定的相似性,但其实现的效果却大不相同。下面...

    setTimeout应用(模拟站长之家导航)

    setTimeout(function, delay, param1, param2, ...) ``` - `function`: 需要延迟执行的函数。 - `delay`: 延迟的时间,单位为毫秒。 - `param1, param2, ...`: 可选参数,可以传递给`function`的值。 当调用`...

    jquery delay()介绍及使用指南

    《jQuery的delay()方法详解与应用实践》 在jQuery中,`.delay()`是一个非常实用的函数,主要用于在动画效果和队列操作中设置延迟。它并非JavaScript原生的`setTimeout`函数的替代品,但其在特定场景下具有独特的...

    js中settimeout方法加参数.docx

    除了基本的使用外,`setTimeout`还可以与其他技术结合实现更复杂的功能。例如,可以利用递归来实现重复执行的任务: ```javascript var timer; function loop(points, value) { if (points.length) { AddGuiJi...

    Javascript中, setTimeout() 和 setInterval() 的方法

    与`setTimeout()`类似,`setInterval()`的第二个参数也是一个延迟时间,但区别在于它会每隔这个时间重复执行提供的函数。这也意味着,如果执行函数本身需要的时间超过设定的延迟,可能会出现函数调用的重叠。 考虑...

    深化理解setTimeout函数和setInterval函数_.docx

    与`setTimeout`不同,`setInterval`会一直重复执行,直到调用`clearInterval`来停止。例如: ```javascript var intervalId = setInterval(myFunction, 1000); function myFunction() { console.log('Hello'); ...

    向setTimeout传递函数参数

    在实际开发中,`setTimeout`常与`clearTimeout`配合使用,以实现动态控制任务的执行。 此外,如果你需要在多个地方使用同一个函数并传递不同的参数,可以考虑使用函数工厂或柯里化(Currying)技术。函数工厂可以...

    delay:setTimeout的Promise API

    setTimeout API。 它具有与模块相同的功能,但全部以打字稿编写。 安装 $ yarn add delay.ts 用法 import delay , { delayReject , delayThen , delayCatch } from 'delay.ts' ; delay ( 3 * 1000 , 'some value' ...

    javascript setTimeout和setInterval计时的区别详解

    setInterval函数同样允许你设定一个时间间隔,但与setTimeout不同,setInterval设定的函数会每隔`delay`毫秒重复执行。 其基本语法为: ``` var intervalID = setInterval(func, delay[, param1, param2, ...]); ``...

    JavaScript中setTimeout和setInterval函数的传参及调用_.docx

    setTimeout 函数用于在指定的时间点执行某个函数,语法格式为 `setTimeout(func, delay, [arg1, arg2, ...])`,其中 `func` 是要执行的函数,`delay` 是延迟的时间,`arg1, arg2, ...` 是要传递给函数的参数。...

    js中setTimeout()与clearTimeout()用法实例浅析.docx

    `setTimeout(fn, delay)`函数接受两个参数:一个是要执行的函数(或者字符串,代表要执行的JavaScript代码),另一个是延迟的时间,单位为毫秒。例如: ```javascript setTimeout(function() { console.log('Hello...

    理解javascript定时器中的setTimeout与setInterval

    var timeoutID = window.setTimeout(func, delay, [param1, param2, ...]); var timeoutID = window.setTimeout(code, delay); ``` `timeoutID`是返回的延时操作ID,可用于`clearTimeout`来取消定时器。`func`是...

    微信小程序—setTimeOut定时器的问题及解决

    本文主要探讨了`setTimeOut`定时器在微信小程序中的应用和一些常见问题。`setTimeOut`是JavaScript中的一个基础功能,用于在指定的延迟时间后执行某段代码,这对于实现定时任务至关重要。 微信小程序提供了两种定时...

    关于JS中setTimeout()无法调用带参函数问题的解决方法.docx

    - **`setTimeout()`的基本用法**:`setTimeout(func, delay)`,其中`func`是需要延迟执行的函数,`delay`是延迟的毫秒数。 - **`clearTimeout()`**:用于取消由`setTimeout()`设置的定时器,语法为`clearTimeout...

    after-delay:基本上 setTimeout 对类固醇

    timeout = setTimeout ( function ( ) { console . log ( 'Event not fired for a second!' ) ; } , 1000 ) ; } ) ; 使用这个库,你可以这样写: var afterDelay = require ( 'after-delay' ) ; on ( 'some...

    Javascript定时器 三 setTimeout func 0

    它的基本语法是`setTimeout(function, delay)`, 其中`function`是要执行的函数,`delay`是延迟的时间,单位为毫秒。当`delay`参数设置为0时,这似乎意味着立即执行,但实际并非如此。 ### 1. `setTimeout(func, 0)`...

Global site tag (gtag.js) - Google Analytics