He creado un jQuery content switcher. En general, funciona bien, pero hay un problema con eso. Si hace clic en los enlaces del lado varias veces, a veces se vuelven visibles varias piezas de contenido.Prevenir el evento de clic en jQuery activando varias veces
El problema probablemente se encuentre en algún lugar dentro del evento de clic. Aquí está el código:
$('#tab-list li a').click(
function() {
var targetTab = $(this).attr('href');
if ($(targetTab).is(':hidden')) {
$('#tab-list li').removeClass('selected');
var targetTabLink = $(this).parents('li').eq(0);
$(targetTabLink).addClass('selected');
$('.tab:visible').fadeOut('slow',
function() {
$(targetTab).fadeIn('slow');
}
);
}
return false;
}
);
He intentado añadir un candado para la transición de manera que más clics se ignoran como la transición está ocurriendo, pero fue en vano. También he tratado de evitar que la transición se dispare si algo ya está animando, utilizando la siguiente:
if ($(':animated')) {
// Don't do anything
}
else {
// Do transition
}
pero parece que siempre que las cosas están siendo animados. ¿Alguna idea de cómo puedo evitar que la animación se active varias veces?
Genius. Me salvé el trasero hoy con esta respuesta, no pude entender por qué se registraban los eventos de clics múltiples, pensé que jQuery sería inteligente y dejaría de suceder, jQuery no puede hacer todo por usted. Gracias. –