簡體   English   中英

更改布爾來回JavaScript

[英]Change a boolean back and forth javascript

我想知道在Javascript中是否可能有一個單擊事件偵聽器,每次單擊時都會將布爾值從true更改為false。 意思是我單擊一個,它就變為false,然后再次單擊,它就變為true,以此類推。 我什至不知道是否可能,但是我嘗試了這個:

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

我想知道這是否可能。 我覺得我的語法有問題。 任何建議都值得歡迎。

謝謝!

您可以使用!進行切換! 算子

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

如果circlePickerSelector最初為true ,則!circlePickerSelector將其設置為false 然后,您可以將其分配給相同的變量,以在下次單擊時執行相反的操作。

創建圍繞變量的閉包,然后從該閉包內部返回一個函數,例如,

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM