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」がキーワードかどうかもわかりません。他の変数名を使用することをお勧めします。'if_flag_set'のように

于 2012-10-05T16:55:29.173 に答える
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 に答える