Jquery延迟功能不起作用

时间:2014-03-30 18:12:53

标签: javascript jquery

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

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

它什么也没做,但是当我只做$('#pass').attr('type','text')时它没有任何问题。

2 个答案:

答案 0 :(得分:1)

  

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

更好地将其用于动画问题:

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

改为使用setTimeout。

答案 1 :(得分:1)

延迟仅适用于使用jQuery队列的函数(如动画),因此在将类型设置为文本和键入密码之间没有任何延迟。

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

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