Функция задержки Jquery не работает

0

У меня есть поле пароля и небольшой значок справа, и я хочу показать введенный пароль в течение 2 секунд, когда пользователь нажимает на значок. Я сделал это.

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

Он ничего не делает, только когда я делаю только $('#pass').attr('type','text') работает без каких-либо проблем.

  • 0
    Если я не ошибаюсь, не все браузеры поддерживают изменение типа ввода.
  • 0
    но многие делают, по крайней мере, все новые.
Показать ещё 1 комментарий
Теги:

2 ответа

1
Лучший ответ

Задержка работает только с функциями, которые используют очередь jQuery, например анимацию, поэтому вы не получаете задержки между установкой типа текста и повторным типом пароля.

Ваша конкретная проблема может быть решена с помощью setTimeout().

$("#showpass").click(function(){
   var pass = $('#pass').attr('type','text');
   setTimeout(function() {
       pass.attr('type','password');
   }, 2000);
);
  • 0
    Хорошо, я получил это большое спасибо за помощь
1

Метод.delay() лучше всего задерживать между обработанными в очереди эффектами jQuery. Поскольку он ограничен - он, например, не предлагает способ отменить задержку..Delay() не является заменой встроенной функции setTimeout для JavaScript, что может быть более подходящим для определенных случаев использования.

лучше использовать его только для анимационных проблем:

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

вместо этого используйте setTimeout.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню