2014-04-14 43 views
0

我不知道是否有可能在Javascript中有一个点击事件侦听器,每次我点击更改我的布尔从真到假来回。意思是我点击一个它会变成假,我再次点击它,然后在无限循环中变成真,等等。我甚至不知道是否有可能,但我试过这个:来回改变布尔值javascript

//This is my listener 
circlePicker.click(function() { 
    booleanChecker(circlePickerSelector); 
    console.log(booleanChecker(circlePickerSelector)); 
}); 

//This function checks if the boolean is true or false 
function booleanChecker(isThisTrue) { 
    // circlePickerSelector = !circlePickerSelector; 
    // return circlePickerSelector; 
    if (isThisTrue == false) { 
     isThisTrue = true; 
     console.log("I turned into true"); 
    } else if (isThisTrue == true) { 
     isThisTrue = false; 
     console.log("I turned into false"); 
    } 
    return isThisTrue; 
} 

我想知道这是否可能。我感觉我的语法有些问题。任何建议都是值得欢迎的。

谢谢!

回答

5

您可以通过使用!操作

circlePicker.click(function() { 
    circlePickerSelector = !circlePickerSelector; 
    console.log(circlePickerSelector); 
}); 

切换,如果circlePickerSelector原是true,然后!circlePickerSelector它变成false。然后,您可以将其分配给相同的变量,以便在下次单击时进行相反操作。

+0

这工作得很好!谢谢! – mauricioSanchez

3

围绕创建一个变量封闭然后从瓶盖内返回的功能,例如,

function bool(initial) { 
    initial = !!initial; 
    return { 
     get current() { 
      return initial; 
     }, 
     toggle: function() { 
      return initial = !initial; 
     } 
    }; 
} 
var b = bool(true); 
b.current; // true 
b.toggle(); // false 
b.current; // false 
b.toggle(); // true 
b.current; // true