/ / Simula facendo clic su un pulsante - javascript, jquery

Simula facendo clic su un pulsante - javascript, jquery

Se ho un evento click esistente associato aun pulsante, posso usare il codice per simulare il pulsante che viene premuto in modo da eseguire il codice nell'evento click? Sto chiedendo perché voglio che ci siano certe volte in cui l'utente non deve premere il pulsante per il codice da eseguire. Vorrei premere il pulsante automaticamente per loro in certi casi, se ciò ha senso.

risposte:

0 per risposta № 1

Semplice come questo,

$(function() {
$("#button").trigger("click");
});

0 per risposta № 2
var button = document.getElementById("yourButtonIdHere");
button.click();

Questo genererà un evento click nel pulsante


0 per risposta № 3

Puoi attivare un evento click su un elemento dichiamando la funzione .click () sull'elemento. Non trasmettendo alcun valore alla funzione verrà generato l'evento click, anziché impostare un listener per l'evento click.

Se il pulsante ha un id di "form-btn", ecco cosa vorrebbe:

<button id="form-btn">Submit</button>

<script type="text/javascript">
//Setup the click event
$("#form-btn").on("click", function (e) {
alert("clicked!");
});

//Call the click event
$("#form-btn").click();
</script>

Questo dovrebbe funzionare bene, anche se di solito ci provoutilizzare una funzione con nome quando si impostano i gestori di eventi, anziché le funzioni anonime. In questo modo, anziché attivare l'evento, posso chiamare direttamente la funzione.

Si noti che, secondo la mia esperienza, i browser più vecchi (IE6, IE7) a volte limitano gli eventi che possono essere attivati ​​dal codice come precauzioni di sicurezza per l'utente.

Ecco la documentazione sulla funzione .click (): http://www.w3schools.com/jquery/event_click.asp


Modifica 1

Ho dimenticato che jQuery ha anche la funzione .trigger (), come usata in Chozrisposta. Anche questo è un buon lavoro come alternativa a .click (). La cosa bella di .trigger () è che può innescare eventi standard e eventi personalizzati, oltre a consentire il trasferimento di più dati nel tuo evento.


0 per risposta № 4

Basta fare una funzione ed eseguire la funzione dall'interno del pulsante.


0 per risposta № 5

Tre scelte:

  1. È possibile chiamare la funzione di gestione eventi click direttamente quando appropriato:

    if(timeIsRightForClick){
    yourClickHandler();
    }
    
  2. È possibile simulare un clic del pulsante chiamando il .click() metodo del pulsante.

    $("#ButtonID").click()
    

https://api.jquery.com/click/

  1. Come il # 2, ma usando la funzione trigger () di jQuery, che può essere utilizzata su eventi standard e personalizzati:

    $("#ButtonID").trigger("click");
    

http://api.jquery.com/trigger/

Le scelte n. 2 e n. 3 sono generalmente migliori perché lorofarà in modo che la funzione di gestione degli eventi riceva un riferimento all'evento click nel caso in cui sia necessario utilizzare tale oggetto. La scelta n. 1 non causa un evento di clic reale (esegue semplicemente il codice che gli viene indicato) e quindi nessun oggetto evento viene creato o passato al gestore di eventi.