- Home
- Categorie
- Coding e Sistemistica
- Javascript & Framework
- Impedire esecuzione azione finchè non è finita un'altra jQuery
-
Impedire esecuzione azione finchè non è finita un'altra jQuery
COme faccio a fare in modo che, finchè una funzione (ad esempio un'azione di animate al click) non è terminata, non sia possibile eseguire altre funzioni nè rieseguire la stessa?
-
Prova ad aggiungere un unbind del click prima che fai partire l'anmate.
Alla fine dell'effetto riattivi il bind, magari aggiungi un CSS per disabilitare il bottone od altro.
-
niente. se metto l'unbind poi mi blocca tutti i click seguenti. Vi riporto la parte di codice incriminata. (ho provato cn la callback sull'animate ma nada).
[PHP]
$('a.btnext').click(function(){
if ( parseInt($('.sliding_panel').css('left')) > -limit){
$('.sliding_panel').stop().animate({
left:'-='+lgh_slide+''},{
queue:false, duration:1000, easing: 'easeOutBounce'}
);
}
return false;
});
[/PHP]Il problema è: se clicco rapidamente sullo stesso pulsante durante l'animazione, salta il parametro left e perdo il posizionamento corretto.
-
Ciao gleenk,
prima cosa che mi viene in mente:
fai apparire un div con z-index superiore e al 100% di altezza e larghezza.
-
LOL semplicemente geniale! proverò ^^
-
Sto provando, la logica funziona, ma non riesco a chiamare 1 altra callback. Ho provato con complete ecc ma non trovo la sintassi giusta mi sa. Idee? thanks
-
Se ti riferisci all'animazione devi utilizzare l'opzione complete
complete: A function to call once the animation is complete.
-
l'ho vista ma non mi raccapezzo a livello di sintassi con 3 callback...
-
@gleenk said:
l'ho vista ma non mi raccapezzo a livello di sintassi con 3 callback...
In che senso?
-
Nel senso che se cerco di mettere 3 callback nel codice che ho postato si impianta e con un'altra sintassi non riesco a scrivere la funzione correttamente
[URL=http://www.giorgiotave.it/forum/gt-world/101972-forum-gt-disponibile-alle-versioni-per-telefoni-cellulari.html]Postato via Mobile
-
Posta la funzione che attuale.
-
[php]$('a.btnext').click(function(){
$('body').append("<div id='super'></div>");
if ( parseInt($('.sliding_panel').css('left')) > -limit){
$('.sliding_panel').stop().animate({
left:'-='+lgh_slide+''},{
queue:false, duration:1000, easing: 'easeOutBounce'},
function(){
$('#super').remove();
}
);
}
else {
clearInterval(timer);
}
$('.descrizione span').remove();
return false;
});
[/php]