Как замедлить исполнение на jQuery нажмите кнопку функция?


Я использую простую команду jquery в консоли Google Chrome для управления своим сайтом. В принципе, я должен каждый день утверждать несколько новых запросов, поэтому я использую:

$('.approve').click();

Где 'approve' - это имя класса кнопки, на которую нужно нажать. Это экономит мне часы. Однако это каждый раз приводит к сбою моего браузера, а иногда и не работает, главным образом из-за налога на ресурсы, который он поставил на мой ноутбук. Я искал способ замедлить действие функции. Я пытался...

$('.approve').click().delay(1000);

Чтобы попытаться замедлить его на 1 секунду между щелчками кнопок. Это, кажется,не сработало (он работал без ошибок, но я не думаю, что это замедлило щелчок.

Есть идеи?

Правка:

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

Может ли кто-нибудь также сказать мне, почему вышеупомянутая функция не будет работать? Судя по моим исследованиям, так и должно быть.

Заранее благодарю вас.

4 4

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);
});

Если вы хотите выполнить свою функцию один раз, используйте setTimeout()

$(".approve").click(function(){
    setTimeout(function(){
    }, 1000);
});

Если вы хотите выполнять его каждую секунду, используйте setInterval()

При нажатии вы должны запустить функцию, которая будет выполнять функцию setTimeout

$('.approve').click(function(){
  setTimeout(function(){
  // here some code u want to execute after 5 sec //
  }, 5000);
});