Ho uno script che sto sviluppando che crea un effetto del tipo di pulsante scorrevole. Cinque div sono situati l'uno accanto all'altro ciascuno con un link. Quando uno di quei DIVS viene cliccato sul contenuto associato viene espanso e il resto dei Div sono chiusi.Impedire l'esecuzione di Javascript due volte
Il problema è che se un utente fa clic su Div due volte mentre carica o fa clic su un altro Div in rapida successione, le crepe iniziano a mostrare.
Mi chiedo se sarebbe possibile consentire solo l'esecuzione della query una volta e attendere il completamento anziché accodarlo.
Ecco il mio codice attuale, se si tratta di merda sentitevi liberi di commentare su come avrei potuto meglio che ... Io non sono il migliore a JavaScript/jQuery: P
function mnuClick(x){
//Reset all elements
if($('#'+x).width()!=369){
$('.menu .menu_Graphic').fadeOut(300);
$('.menu_left .menu_Graphic').fadeOut(300);
$('.menu_right .menu_Graphic').fadeOut(300);
$('.menu').animate({width: "76px"},500);
$('.menu_left').animate({width: "76px"},500);
$('.menu_right').animate({width: "76px"},500);
}
var ElementId = '#' + x;
$(ElementId).animate({
width: 369 + "px"
},500, function(){
$(ElementId + ' .menu_Graphic').fadeIn(300);
});
}
Grazie in anticipo, Chris.
+1 proprio quello che stavo per dire, semplicemente avere una variabile che tiene traccia di se l'evento è stato eseguito, inizializzarlo prima di iniziare l'elaborazione (quindi disabilita tutti gli altri eventi). – Jakub
Grazie mille. Ottima soluzione ancora molto semplice :) – Chris