Stavo usando il metodo $.click()
per l'attivazione di alcuni eventi. Ma poi ho avuto bisogno di impostare alcuni eventi per alcuni elementi HTML prima che gli elementi fossero dichiarati. Prendiamo questo come esempio:incerto sul metodo .on()
<script>
$('div.hide').click(function() {
$('div.hide').css({'display' : 'none'});
});
</script>
<div class="hide">some text</div>
Il rovescio della medaglia è che quando si imposta il metodo .click()
, non esiste il div.hide
elementi, in modo che nessun innesco è impostato.
così ho girato al metodo .on()
, in questo modo:
<script>
$('div.hide').on('click', function() {
$('div.hide').css({'display' : 'none'});
});
</script>
<div class="hide">some text</div>
Ma anche questo non funziona. Pensavo che chiamare .on()
avrebbe reso tutti gli elementi esistenti e futuri div.hide
attivando lo 'click' function()
.
Sono riuscito a superare questo inconveniente, ma per la mia conoscenza mi piacerebbe sapere cosa stavo facendo male. Non c'è modo di assegnare un trigger a futuri elementi HTML?
mio solituion era:
<script>
$(document).ready(function() {
$('div.hide').click(function() {
$('div.hide').css({'display' : 'none'});
});
});
</script>
<div class="hide">some text</div>
Nota circa il $ (document) .ready (function() {}) ',' involucro, che aggiunge un gestore di eventi per l'evento pronto per il documento, in modo che il codice all'interno non venga eseguito fino a quando l'evento non viene attivato. Ciò garantisce che la pagina sia completamente renderizzata prima dell'esecuzione dello script rispetto a quando javascript analizza ed esegue diversamente durante il rendering della pagina. –