Як використовувати імітацію дії натискання кнопки за допомогою jQuery або JavaScript?


79

Мені потрібно використовувати JavaScript для імітації дії натискання кнопок. Як я цього можу досягти? Чи можу я цього досягти за допомогою jQuery?

Відповіді:


125

Так, ви можете це зробити за допомогою jquery. Використовуйте triggerфункцію. Тут документація . Ось зразок:

$('#foo').trigger('click');

3
Чи є це рішення якимось чином кращим за .click()метод ванілі ? Чи існує якась різниця у вартості виконання між ними?
axolotl

Здається, я не можу змусити це працювати в IE. Будь-хто інший? $(this).trigger('click');
Томас Бай

Ігноруйте, здається, не можна додати клацання після додаванняevent.preventDefault();
Томас Бай

27

Ви можете виконати обробник події кліку, призначений елементу керування кнопкою:

$("#mybutton").click();


3

Наступний код буде надрукований клацанням два рази один із $('.submitBtn').click();та інших$('.submitBtn').trigger('click')

$(document).ready(function() {

  $('.submitBtn').on('click', function() {

   console.log("Clicked!");

  })

$('.submitBtn').click();
$('.submitBtn').trigger('click')



});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>

<button menu="submitBtn" class="submitBtn len4 btn" title="submit" data-code-m="sbm.submit"> Click me
        </button>


1

Будь ласка, спробуйте наступний код, наприклад:

setTimeout(function() {
    $(".class_name").trigger('click');  
}, 8000);

0

Обернувши його в цю "функцію готовності до анонімного документа", ви переконаєтесь, що кнопка є там, перш ніж натиснути її. Про всяк випадок, коли він спробує клацнути до того, як елемент, який ви хочете натиснути, буде завантажений. Це вирішить цю проблему.

Також пам’ятайте, що в ідентифікаторі використовується хеш (тобто # кнопка закриття), але якщо ви хочете натиснути елемент, який має КЛАС, то поміняйте хеш на одну крапку (тобто .close-button).

jQuery(document).ready(function() {
        $("#close-button").trigger('click');    
});
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.