Подписываюсь на событие click
для всех кнопок с классом btn
.
Нужно, чтобы при клике нажатая кнопка становилась неактивной, а через 3 секунды становилась обратно активной.
$(function() {
$(".btn").each(function() {
$(this).on("click", function() {
$(this).attr("disabled", "true");
setTimeout(function() {
$(this).removeAttr("disabled");
}, 3000);
});
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="submit" class="btn" value="Add"/>
Так кнопка становится неактивной, но не срабатывает функция внутри setTimeout, точнее она вроде срабатывает, но она не понимает, что за элемент $(this).
При этом ошибок в консоли нет.
Собственно как быть?
Так работает, но этот вариант не устраивает
$(function() {
$(".btn").each(function() {
$(this).on("click", function() {
$(this).attr("disabled", "true");
setTimeout(function() {
$(".btn").removeAttr("disabled");
}, 3000);
});
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="submit" class="btn" value="Add"/>
$(".btn").each(function() {
$(this).on("click", function() {
var that = $(this);
that.attr("disabled", "true");
setTimeout(function() {
that.removeAttr("disabled");
}, 3000);
});
});
Но зачем цикл?
$(".btn").on("click", function() {
var that = $(this);
that.attr("disabled", "true");
setTimeout(function() {
that.removeAttr("disabled");
}, 3000);
});
или
$(".btn").on("click", function() {
$(this).attr("disabled", "true");
setTimeout(function() {
$(this).removeAttr("disabled");
}.bind(this), 3000);
});
Например, использовать переменную
$(".btn").each(function() {
$(this).on("click", function() {
var self = $(this);
self.attr("disabled", "true");
setTimeout(function() {
self.removeAttr("disabled");
}, 3000);
});
});
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Возникла небольшая проблемаНиже приведен скрипт, который обрабатывает клик на кнопку лайк и затем создает объект в localStorage + делает кнопку...
Как сделать плавную смену картинок фона? Есть вот такой скрипт, но там смена происходит не плавно
Есть форма регистрации, данные с этой формы удачно отправляются на сервер, но при отправке - происходит переход на страницу сервера
Имеется svg спрайт с иконками, как можно реализовать вставку иконку в ::before не отдельным файлом-иконкой *svg, а вытащить уже имеющуюся из спрайта?