簡體   English   中英

我們可以使用切換來代替if / else和隱藏/顯示邏輯嗎

[英]can we use toggle instead of the if/else and hide/show logic

我希望不使用if / else if / else和hide / show來處理此問題。 我們可以使用切換來處理這種情況嗎?

$("#target").change(function () {
    var value = $(this).val();
    if (value === "A" || value === "B") {
        $ele1.show()
        $ele2.hide()
    } else if (value === "C") {
        $ele2.show()
        $ele1.hide()
    } else {
        $ele1.hide()
        $ele2.hide()
    }

});

這是另一種方法:

 const toggleMap = { "A" : 1, "B" : 1, "C" : 2 }, $elements = $("element"); // cache all the elements you want to toggle $("#target").change( elem => { $elements.hide(); // Hides all elements $elements[ toggleMap[elem.target.value] ].show(); // Shows only element 1/2/3 depending on value }); 

優點:只需更新toggleMap ,即可輕松添加,刪除和控制toggleMap多個元素。

在不使用過多if / else的情況下處理不同情況的一種方法是創建一個函數對象:

var handler = {
    A: () => {
        $ele1.show();
        $ele2.hide();
    },
    B: () => {
        $ele1.show();
        $ele2.hide();
    },
    C: () => {
       $ele2.show();
       $ele1.hide();
    },
    default: () => {
        $ele1.hide();
        $ele2.hide();
    }
};

const handle = (value) => {
    const func = handler[value] || handler.default;
    func();
}

$("#target").change(function () {
    var value = $(this).val();    
    handle(value);
});

暫無
暫無

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

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