У меня есть поле пароля и небольшой значок справа, и я хочу показать введенный пароль в течение 2 секунд, когда пользователь нажимает на значок. Я сделал это.
$("#showpass").click(function(){
$('#pass').attr('type','text').delay(2000).attr('type','password');
);
Он ничего не делает, только когда я делаю только $('#pass').attr('type','text')
работает без каких-либо проблем.
Задержка работает только с функциями, которые используют очередь jQuery, например анимацию, поэтому вы не получаете задержки между установкой типа текста и повторным типом пароля.
Ваша конкретная проблема может быть решена с помощью setTimeout()
.
$("#showpass").click(function(){
var pass = $('#pass').attr('type','text');
setTimeout(function() {
pass.attr('type','password');
}, 2000);
);
Метод.delay() лучше всего задерживать между обработанными в очереди эффектами jQuery. Поскольку он ограничен - он, например, не предлагает способ отменить задержку..Delay() не является заменой встроенной функции setTimeout для JavaScript, что может быть более подходящим для определенных случаев использования.
лучше использовать его только для анимационных проблем:
вместо этого используйте setTimeout.