2016-05-25 5 views
-1

Js/JQueryでブール値フラグを設定しようとする単純な作業は、どこにもありません。私はbtn1クリック後にフラグが(グローバルに)変更されるはずだと思っています。しかし、私はJSの内部的な出来事を誤解している可能性があります。そして、btn2をクリックした後、フラグの状態は最初に宣言したとおりにそのまま残ります - どうすればこの問題を解決できますか?JS/jQueryでブール値フラグを設定する

JS:

$(document).ready(function(){ 
    var $btn1 = $("#btn1"); 
    var $btn2 = $("#btn2"); 
    var active1 = true; 
    var active2 = false; 

    $btn1.click(function(){ 
    $active1 = false; 
    $active2 = true; 
    alert("after btn1 click: --> " + " active1: " + active1 + ", active2: " + active2); 
    }); 

    $btn2.click(function(){ 
    // If clicked first on btn1 I'm expecting active1=false; active2=true; ?? 
     alert("after btn2 click: " + " active1: " + active1 + ", active2: " + active2); 
    }); 
}); 

<button id="btn1">Button1</button> 
    <button id="btn2">Button2</button> 

JsFiddle Here

+1

change active1 = false; $ active1 = falseの代わりに。 –

+0

これはPHPではありません - 'active1'は一つの変数' $ active1'は別の変数です。 – h2ooooooo

答えて

1

宣言の中から$を削除します。注:active1ではなく、$active1はactive2と同じです。

$btn1.click(function(){ 
    active1 = false; 
    active2 = true; 
    alert("after btn1 click: --> " + " active1: " + active1 + ", active2: " + active2); 
    }); 
+0

確かに、私はもっと複雑なケースの周りに頭を包み込み、私はここで愚かな間違いを犯しました。期待通りにうまくいくといいですね、ありがとう。 – Turo

+0

@Turoそれは起こる。 –

関連する問題