jquery $.each遍历实现延时,jquery each遍历html元素延迟
web jQuery 2022-01-11 1814 0
关于本站

“最难不过坚持”

本人承接扒站仿站,php网站维护,病毒查杀,网站编辑,网站改版,html制作

有需要网站维护,改版,病毒查杀,网站编辑,网站备案,html制作等相关的工作可以联系我。
本人有多年相关工作经验,也可提供免费咨询,交个朋友。
有需要探讨问题的朋友,也可以加我微信,共同探讨!
微信:15011482830 QQ:408917339

7441103 2655 39
最新评论
https://jueru.net/
评 留言
:weixiao:
评 留言
:shuijiao: :weiqu: :zhenbang: :leng:
评 留言
:yiwen: :yiwen: :yiwen: :yiwen:
评 EasySass: could not generate CSS file. See Output panel for details.
这个业务逻辑多少都有点奇怪了,阅读浏览次数增值在新闻详情页的控制器方法里setInc,这怎么还写进模型事件里了。如果非要用onAfterRead也可以,把新闻文章的内容单独分出来一个news_content表,然后把它和news做关联,然后给news_content表的onAfterRead事件做增值处理,这样点进新闻页内查询到文章内容时才会触发它。
评 TP6模型事件-查询后onAfterRead不好用
文章标签更多
ThinkPHP (254)
Mysql (58)
DedeCms (33)
jQuery (67)
证件照 (1)
setInc (4)
setDec (4)
onclick (5)
打开边栏(ESC) 关闭边栏(ESC)

jquery $.each遍历实现延时,jquery each遍历html元素延迟

需要:点击“检测”,下列数字依次由红变绿,为了假装真的检测了某些东西,在循环的时候,加上延迟,显得效果比较逼真。

from clipboard

html代码

<button class="jiance">检测</button>
  <div class="red">1</div>
  <div class="red">2</div>
  <div class="red">3</div>
  <div class="red">4</div>
  <div class="red">5</div>

怎么实现呢,如果用each循环,瞬间就变绿了

$(function(){
      $('.jiance').click(function(){
        $('div').each(function(idx,obj){
          $(this).removeClass('red').addClass('green');
        })
      })
    })
网上说用setTimeout延迟,如果

setTimeout(function () {
   $(obj).removeClass('red').addClass('green');
}, 1000);
这样写是不行的,这样等于每次修改css样式都延迟1秒,但是循环没有延迟,

等于所以循环瞬间完成,但所以修改css样式,都延迟1秒,所以效果是,点击“检测”1秒后,所以样式由红变绿,还是同时。

所以要第一个循环延迟1秒,第二个延迟2秒,依次类推,效果就是每秒钟由上往下数字依次变绿

$(function(){
      $('.jiance').click(function(){
        $('div').each(function(idx,obj){
          setTimeout(function () {
            $(obj).removeClass('red').addClass('green');
          }, idx*1000);
        })
      })
    })
但是每项检测时间都是一样的,还是有点假,如果每项检测时间是随机的,这样比较真一点
$(function(){
      var time = 500;
      $('.jiance').click(function(){
        $('div').each(function(idx,obj){
          setTimeout(function () {
            $(obj).removeClass('red').addClass('green');
          }, time);
          var rand = sj();
          time += rand*1000;
        })
      })
    })
    function sj() {
      //x上限,y下限     
      var x = 5;
      var y = 1;
      var rand = parseInt(Math.random() * (x - y + 1) + y);
      return rand;
    }
time累计增加随机秒数,实现每项检测的时间都不同。


版权声明:本篇文章来源于网络。 来源链接

相关推荐
TypeError: e.indexOf is not a function解决方法
jQuery | 2020-06-23 6797
This error might be caused by jquery event aliases like .load, .unload or .error deprecated since jQuery 1.8. Look for these aliases in your code and replace them with .o...
jQuery出现Uncaught TypeError: $(...).prop is not a function问题
jQuery | 2019-08-23 6685
做全选功能的时候用到 var xz = $(this).prop("checked"); 提示: Uncaught TypeError: $(...).prop is not a function 应该是jquery版本过低造成的,更换高版本成功解决问题, jquery下载地址 http://www...
评论:0条
评论加载中...
发表评论