Tengo un evento click asignado a un div de una clase en particular. Cuando se produce el clic, la clase se elimina del div. Sin embargo, aún puede hacer clic en el div y se desencadena el evento click()
(aunque la clase ya se haya eliminado). He aquí un ejemplo:jQuery click() todavía se activa después de que se elimine .clickable class
HTML:
<div class="clickable">
<p>Click me</p>
</div>
JavaScript/jQuery:
$('.clickable').click(function() {
$(this).removeClass('clickable');
$(this).addClass('not-clickable');
alert('Clicked!');
});
puedo ver las clases se retiran y se añaden (como el color del texto cambiaba como por mi CSS). Sin embargo, aún puede hacer clic en el div varias veces y seguirá apareciendo alert()
.
Esto también parece ocurrir a la inversa; entonces si agrego la clase clickable
a un div, el código en $('.clickable').click(function() {...});
no se ejecuta (pero visualmente, el div cambia según los nuevos estilos).
¿Cómo puedo hacer para que los eventos de clic coincidan con las clases, incluso después de que jQuery agregue/elimine la clase clickable
?
Gracias por la explicación - Puedo ver lo que sucede ahora. –
Muchas gracias, esta explicación funciona para mí. – Drew
+1 para la explicación :) – Yasser