[英]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.