为了账号安全,请及时绑定邮箱和手机立即绑定

这段代码中setTimeout的用法是什么

这段代码中setTimeout的用法是什么

开满天机 2021-06-22 22:33:01
书中作者在HTML页面中使用setTimeout来重置表单,但是我在JS文档中没有找到这个用法。那么,为什么函数“setTimeout()”可以重置表单呢?//reset$("#reset").click(function(){          setTimeout(function() {            countChecked();//initial            $("select").change();//initial          },0);      });function countChecked() {          var n = $("input:checked").length;          $("div").eq(0).html("<strong>"+n+" elements are selected!</strong>");      }$("select").change(function () {              var str = "";              $("select :selected").each(function () {                    str += $(this).text() + ",";              });              $("div").eq(1).html("<strong>you have selected:"+str+"</strong>");      }).trigger('change');
查看完整描述

3 回答

?
繁星点点滴滴

TA贡献1803条经验 获得超3个赞

那么,为什么函数“setTimeout()”可以重置表单呢?

它没有,它只是等待在其中运行代码,直到处理完由按钮单击触发的事件之后。

您尚未显示 HTML,但我猜该id="reset"按钮也是type="reset",它确实会重置表单(标准 HTML 功能,无需编写脚本)。因此,通过等待调用countChecked直到重置之后,代码会在重置完成显示状态。


查看完整回答
反对 回复 2021-06-24
?
达令说

TA贡献1821条经验 获得超6个赞

setTimeout(function,0) 或 setTimeout(function),零是可选的,两者都将要执行的代码放置在当前正在执行的代码的末尾,并且在浏览器可能有任何更新后挂起。


这在 ES6 之前非常有用,可以为需要很长时间才能完成的脚本解除浏览器的封锁。只需在循环的每次迭代中使用 setTimeout 即可。


例如


setTimeout(function() { console.log(2) }); // will log 2 after this script finishs

console.log(1)

将放入控制台日志 1 然后 2,而不是 2 然后 1。


我看不出这样做的意义


    countChecked();//initial

    $("select").change();//initial

在显示的代码之后,完成了吗?


查看完整回答
反对 回复 2021-06-24
  • 3 回答
  • 0 关注
  • 173 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信