Wie simuliere ich das Klicken auf eine Schaltfläche mit jQuery oder JavaScript?

76

Ich muss JavaScript verwenden, um das Klicken auf Schaltflächen zu simulieren. Wie erreiche ich es? Kann ich es mit jQuery erreichen?

Ricky
quelle

Antworten:

121

Ja, du kannst es mit jquery machen. Verwenden Sie triggerFunktion. Hier Dokumentation . Hier ist ein Beispiel:

$('#foo').trigger('click');
gor
quelle
3
Ist diese Lösung in irgendeiner Weise der Vanillemethode vorzuziehen .click()? Gibt es vielleicht einen Laufzeitkostenunterschied zwischen den beiden?
Axolotl
Ich kann nicht scheinen, dass dies im IE funktioniert. Irgendjemand anderes? $(this).trigger('click');
Thomas Byy
Ignorieren, kann nicht hinzufügen Klick nach dem Hinzufügenevent.preventDefault();
Thomas Byy
27

Sie können den einem Schaltflächensteuerelement zugewiesenen Klickereignishandler ausführen:

$("#mybutton").click();
jevakallio
quelle
3

Folgender Code wird gedruckt zweimal ein von geklickt $('.submitBtn').click();und andere$('.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>

Nisal Edu
quelle
1

Bitte versuchen Sie folgenden Code, zB:

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

Wenn Sie es in diese Funktion zum Bereitstellen eines anonymen Dokuments einbinden, wird sichergestellt, dass die Schaltfläche vorhanden ist, bevor Sie darauf klicken. Nur für den Fall, dass versucht wird zu klicken, bevor das Element, auf das Sie klicken möchten, geladen wird. Dies würde das Problem beheben.

Denken Sie auch daran, dass eine ID einen Hash verwendet (z. B. # Schließen-Schaltfläche). Wenn Sie jedoch auf ein Element mit einer KLASSE klicken möchten, tauschen Sie den Hash gegen einen einzelnen Punkt (z. B. Schließen-Schaltfläche).

jQuery(document).ready(function() {
        $("#close-button").trigger('click');    
});
Gary Carlyle Cook
quelle