Desactivar el botón Siguiente hasta jQuery acabados de animación
-
26-09-2019 - |
Pregunta
Esto es muy bueno y estoy familiarizado con esto. Sin embargo, quiero los botones siguiente y anterior a permanecer visible, simplemente no ser capaz de hacer clic. En mi situación particular, los botones son imágenes que son parte del diseño. Sólo quiero que el usuario no pueda hacer clic a través antes de que termina una animación.
Solución
$(function(){
$("#previous").bind("click", Previous);
$("#next").bind("click", Next);
});
function DoAnimation() {
$("#previous,#next").unbind("click");
$('#id').animate(
complete: function() {
$(this).after('<div>Animation complete.</div>');
$("#previous").bind("click", Previous);
$("#next").bind("click", Next);
}
});
}
function Previous() { }
function Next() { }
Otros consejos
una técnica más:
$(".next,.prev").click(function(){
if ($('#my_animated_elelement').is(':animated'))
{
return false;
}
})
supongo que tienes llamadas javascript para las imágenes de onclick, utilice una variable MyApp.IgnoreNextPrevClicks
marcar si los manipuladores onclick no se ejecutan o no.
MyApp={}
MyApp.IgnoreNextPrevClicks=false;
MyApp.PrevClick=function() {
if(MyApp.IgnoreNextPrevClicks) return;
//real work goes here
}
Ahora antes de llamar al animador jQuery, MyApp.IgnoreNextPrevClicks
conjunto en true, y la puso de nuevo a falsa después de que termine la animación (animación jQuery uso de devolución de llamada).
function btn() {
$('#btn').one('click', function(){
//call your animation function here.
setTimeout(btn, animation duration);
});
}
$('#mybtn').attr("disabled","disabled"); // to Disable Button
$('#mybtn').removeAttr("disabled"); // to Enable Disabled button