Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为自动执行的回调设置动画_Javascript_Jquery_Animation - Fatal编程技术网

Javascript 为自动执行的回调设置动画

Javascript 为自动执行的回调设置动画,javascript,jquery,animation,Javascript,Jquery,Animation,第一个动画制作图像500x334,回调应该在再次单击图像后执行,这将使图像变小,但是回调是自动执行的(我认为这应该发生)但我想知道是否有一种方法可以阻止它执行,然后当你点击图像时,它会再次动画?当我添加.stop时,它工作了一次,然后继续执行两次?问题是您正在另一个单击处理程序中注册一个单击处理程序,因此当第二次单击发生时,您的第一次和第二次单击将被触发 $(function(){ $("#obj").click(function(){ $("#theimage").animate({h

第一个动画制作图像500x334,回调应该在再次单击图像后执行,这将使图像变小,但是回调是自动执行的(我认为这应该发生)但我想知道是否有一种方法可以阻止它执行,然后当你点击图像时,它会再次动画?当我添加.stop时,它工作了一次,然后继续执行两次?

问题是您正在另一个单击处理程序中注册一个单击处理程序,因此当第二次单击发生时,您的第一次和第二次单击将被触发

$(function(){
$("#obj").click(function(){
    $("#theimage").animate({height: '334px', width: '500px'},function(){
        $("#obj").click(function(){
        $("#theimage").animate({height: '150px', width: '250px' })
        });
    });
});
});

实际上,
回调
用于在
动画或特定作业
完成后执行一组代码。因此,每当第一个
动画
完全执行时,显然应该执行回调部分。试着这样,

$(function () {
    var flag = false;
    $("#obj").click(function () {
        if (flag) {
            $("#theimage").stop(true, true).animate({
                height: '150px',
                width: '250px'
            })
        } else {
            $("#theimage").stop(true, true).animate({
                height: '334px',
                width: '500px'
            });
        }
        flag = !flag;
    });
});

@我想解释一下你的投票。?这将对我有用。
$(function(){

$("#obj").click(function(){

    if (parseInt($("#theimage").width()) === 500)
       {
          $("#theimage").stop().animate({height: '150px', width: '250px' })
       }
   else
       {
          $("#theimage").stop().animate({height: '334px', width: '500px'});
       }
 });

});