Estaba usando el método $.click()
para desencadenar algunos eventos. Pero luego necesité establecer algunos eventos para algunos elementos HTML antes de que los elementos fueran declarados. Vamos a tomar esto como un ejemplo:no estoy seguro acerca del método .on()
<script>
$('div.hide').click(function() {
$('div.hide').css({'display' : 'none'});
});
</script>
<div class="hide">some text</div>
La desventaja es que al establecer el método .click()
, no existen los elementos div.hide
, por lo que no disparo se ajusta.
así que di vuelta al método .on()
, así:
<script>
$('div.hide').on('click', function() {
$('div.hide').css({'display' : 'none'});
});
</script>
<div class="hide">some text</div>
Pero esto también no funciona. Pensé que llamar a .on()
haría que todos los elementos div.hide
existentes y futuros activen el 'click' function()
.
Logré superar este inconveniente, pero por mi propio conocimiento, me gustaría saber qué estaba haciendo mal. ¿No hay forma de asignar un activador a futuros elementos HTML?
Mi solituion era:
<script>
$(document).ready(function() {
$('div.hide').click(function() {
$('div.hide').css({'display' : 'none'});
});
});
</script>
<div class="hide">some text</div>
Nota acerca de la '$ (document) ready (function() {});' envoltura, que agrega un controlador de eventos para el evento listo para documentos, de modo que el código dentro no se ejecutará hasta que se desate ese evento. Esto garantiza que la página se represente por completo antes de que se ejecute el script, en lugar de cuando el javascript analiza y ejecuta durante la página de lo contrario. –