jQuery - 切换允许的动画..没有任何作用

时间:2014-09-19 13:01:43

标签: jquery

点击后没有任何反应。如果我在第一个 if语句中分配变量,则单击然后工作..所以我猜那些带有 makou 变量的东西是不正确的。

            var makou = TRUE;
            if(makou == TRUE){
                $( ".box_box" ).click(function() {
                    $( ".box" ).animate({
                        top: "+=300",
                    }, 50, function() {
                    });
                    makou = FALSE;
                });
            }
            if(makou == FALSE){
                $( ".box_box" ).mouseleave(function() {
                    $( ".box" ).animate({
                        top: "-=300",
                    }, 50, function() {
                    });
                    makou = TRUE;
                }); 
            }

1 个答案:

答案 0 :(得分:0)

TRUEFALSE必须使用小写字母书写,因为@Spokey说并且您的第二个事件mouseleave从未设置,因为变量makoutrue。当您点击makou将成为false但点击后将不会再次设置mouseleave。 将if条件放在mouseleave事件处理程序中,如下所示:

var makou = true;

if (makou) {
    $( ".box_box" ).click(function() {
        $(this).unbind('click'); // unbind click to allow it just one time

        $( ".box" ).animate({
            top: "+=300",
        }, 50, function() {
        });
        makou = false;
    });
}

$( ".box_box" ).mouseleave(function() {
    if(!makou) {
        $( ".box" ).animate({
            top: "-=300",
        }, 50, function() {
    });
    makou = true;
}

这是一个JSFiddle:http://jsfiddle.net/5dzt1v6f/5/