JQuery Flags无法正常工作

时间:2012-10-05 16:51:36

标签: jquery

我确定这是一个简单的问题,并且有一个明显的答案,但事实是我无法解决这个问题。基本上,如果单击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;
                }
            }
        );

3 个答案:

答案 0 :(得分:3)

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

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

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

以下是演示:http://jsfiddle.net/upqTZ/

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

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;
                }
            }
        );