[JavaScript] Cambiare al volo l\'attributo onclick

JavascriptCon JavaScript non si finisce mai di imparare, ed il motivo è molto semplice: questo è un linguaggio client-side, che si esegue sul pc dell’utente che avvia il comando. L’interprete è il web browser dell’utente stesso.

Facile quindi che capiti che ogni browser abbia reazioni diverse a parità di codice. Determinati oggetti e/o funzioni possono essere propri di Internet Explorer e venire ignorati dal motore Geko. Come viceversa qualcosa che può andar bene per Geko e Webkit, non è raro che risulti incompatibile per Explorer.

La ricerca di funzioni e modalità cross browser è un’esigenza primaria in JavaScript. Evitare troppe eccezioni di codice e riuscire a scrivere una singola istruzione come buona per tutti è l’obiettivo del coder che pensa alle proprie applicazioni in visione sostenibile.

Proprio oggi mi sono trovato di fronte l’esigenza di cambiare al volo l’attributo onclick di un determinato elemento. Ed ecco la soluzione che fino ad ora sembra funzionare con ogni browser.

  document.getElementById(id).onclick = function(){
    //do something
  }

Ho ipotizzato che l’elemento venga prelevato con un semplice getElementById, ma avrei potuto usare getElementsByTagName per trattare una serie di elementi o qualsiasi altro metodo. La peculiarità sta nel dichiarare come funzione il nuovo valore dell’attributo onclick.

Tale metodo è particolarmente adatto in quei casi in cui al click su un elemento debbano avviarsi altenativamente funzioni complesse.

One thought on “[JavaScript] Cambiare al volo l\'attributo onclick”

Comments are closed.