Как замедлить исполнение на jQuery нажмите кнопку функция?
Я использую простую команду jquery в консоли Google Chrome для управления своим сайтом. В принципе, я должен каждый день утверждать несколько новых запросов, поэтому я использую:
$('.approve').click();
Где 'approve' - это имя класса кнопки, на которую нужно нажать. Это экономит мне часы. Однако это каждый раз приводит к сбою моего браузера, а иногда и не работает, главным образом из-за налога на ресурсы, который он поставил на мой ноутбук. Я искал способ замедлить действие функции. Я пытался...
$('.approve').click().delay(1000);
Чтобы попытаться замедлить его на 1 секунду между щелчками кнопок. Это, кажется,не сработало (он работал без ошибок, но я не думаю, что это замедлило щелчок.
Есть идеи?
Правка:
Кто-то указал, что это может быть дубликат другого вопроса. Причина, по которой это не так, заключается в том, что другой главный ответ фокусируется на использовании JS для определения функции, которая использует setTimeout (), где я ищу собственный метод jquery для этого. Я понимаю, что jQuery написан в JS, но поскольку я использую его в командной консоли, у меня нет роскоши нескольких строк пространства для кодирования.Может ли кто-нибудь также сказать мне, почему вышеупомянутая функция не будет работать? Судя по моим исследованиям, так и должно быть.
Заранее благодарю вас.
4 ответа:
Подождите 1 секунду между каждым щелчком мыши:
Вам нужно будет выполнить итерацию над каждой кнопкой
.approve
, а затем вызвать событие click для каждой кнопки с секундой между ними: (setTimeout
)$('.approve').each(function(index) { var $approve = $(this); setTimeout(function() { // Simulation click event $approve.trigger('click'); // 0, 1, 2, 3, ... times 1000 to bring delay to miliseconds }, index * 1000); });
Один лайнер (для IE9+):
$(".approve").each(function(c){setTimeout(function(c){c.click()},1e3*c,$(this))});
Один лайнер:
$(".approve").each(function(e){var i=$(this);setTimeout(function(){i.click()},1e3*e)});
Вы можете добавить задержку на функции click вот так
$(".approve").click(function(){ setTimeout(function(){ // Do something }, 1000); });