【问题标题】:Jquery delay function not workingJquery延迟功能不起作用
【发布时间】:2014-03-31 02:17:42
【问题描述】:

我在右侧有一个密码字段和一个小图标,我想在用户单击该图标时显示输入的密码 2 秒。 我所做的是。

$("#showpass").click(function(){
   $('#pass').attr('type','text').delay(2000).attr('type','password');
);

它什么都不做,但当我只做$('#pass').attr('type','text') 时,它可以正常工作。

【问题讨论】:

  • 如果我没记错的话,并不是所有的浏览器都支持改变输入类型。
  • 但很多人至少都做了新的。
  • 啊我明白了.. IE 过去不支持它.. 但现在支持了。

标签: javascript jquery


【解决方案1】:

延迟仅适用于使用 jQuery 队列的函数,例如动画,因此在将类型设置为文本和输入回密码之间不会出现延迟。

您的特定问题可以通过setTimeout() 解决。

$("#showpass").click(function(){
   var pass = $('#pass').attr('type','text');
   setTimeout(function() {
       pass.attr('type','password');
   }, 2000);
);

【讨论】:

    【解决方案2】:

    .delay() 方法最适合在队列 jQuery 之间进行延迟 效果。因为它是有限的——例如,它没有提供一种方法来 取消延迟——.delay() 不是 JavaScript 原生的替代品 setTimeout 函数,可能更适合某些用途 案例。

    最好只用于动画问题:

    https://api.jquery.com/delay/

    改用 setTimeout。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-01-05
      • 1970-01-01
      • 2011-05-02
      • 1970-01-01
      • 2011-05-31
      相关资源
      最近更新 更多