0

我确信这是一个简单的问题,并且有一个明显的答案,但事实是我无法解决它。基本上,如果单击 div 并且变量存在,则执行此操作,否则执行此操作。但这些都不起作用。

想法?

$("#lisea").click(
            var set = false;
            if(set) {
                function() {
                    $("body").animate({
                    opacity: 1
                    }, 500);
                    var set = false;
                }
            }
            if(!set) {
                function() {
                    $("body").animate({
                    opacity: 0.25
                    }, 500);
                    var set = true;
                }
            }
        );
4

3 回答 3

3

您需要在回调函数中使用您的代码 - 而不仅仅是作为参数。你也只是在你的条件下定义一个函数——你需要调用它。

无论如何,我认为这可能是你想要的:

var set = false;
$("#lisea").click(function(){
    $('body').stop().animate({
        opacity: (set) ? 1 : 0.25
    }, 500);
    set = !set;
});

这是一个演示:http: //jsfiddle.net/upqTZ/

于 2012-10-05T16:53:20.133 回答
0

试试这个..您似乎一次又一次地声明相同的变量..将您的声明移到点击事件的范围之外..

var set = false;
$("#lisea").click(
            if(set) {
                function() {
                    $("body").animate({
                    opacity: 1
                    }, 500);
                    set = false;
                }
            }
            if(!set) {
                function() {
                    $("body").animate({
                    opacity: 0.25
                    }, 500);
                    set = true;
                }
            }
        );
于 2012-10-05T16:59:57.923 回答
0

删除所有'var',它应该可以工作。您在不同的范围内声明了许多变量。也不确定'set'是否是某个关键字..所以最好使用其他变量名。像'if_flag_set'

于 2012-10-05T16:55:29.173 回答