我有以下功能:
$("#drpType").change(function () {
var SelectedVal = this.value;
switch (SelectedVal) {
case "2021":
console.log('a');
console.log('b');
case "2020":
console.log('a');
case "ADB":
console.log('b');
case "PWP":
console.log('c');
}
}
为什么在SelectedVal
为2021时打印a,b,a,b,c
?
在jsfiddle中创建了方案。现在我能够理解你的问题。当选择2021
时,它返回2个div。如果switch语句基于fall-thought那么为什么如果选择EFGH
只有一个div可见而不是3,那么为什么会这样开心?
<select id="drpQuotaType" >
<option value="0">Select</option>
<option value="2021">2021</option>
<option value="2020">2020</option>
<option value="ABCD">ABCD</option>
<option value="EFGH">EFGH</option>
</select>
<div id="dv1" style="display:none">Div 1 </div></br>
<div id="dv2" style="display:none">Div 2 </div></br>
<div id="dv3" style="display:none">Div 3 </div></br>
<div id="dv4" style="display:none">Div 4 </div>
$("#drpQuotaType").change(function () {
var SelectedVal = this.value;
$('#dv1').hide();
$('#dv2').hide();
$('#dv3').hide();
switch (SelectedVal) {
case "2021":
$('#dv1').show();
$('#dv2').show();
case "2020":
$('#dv2').show();
case "ABCD":
$('#dv2').show();
case "EFGH":
$('#dv3').show();
}
});
答案 0 :(得分:6)
您错过了关于每个案件的break;
陈述:
$("#drpType").change(function () {
var SelectedVal = this.value;
switch (SelectedVal) {
case "2021":
console.log('a');
console.log('b');
break;
case "2020":
console.log('a');
break;
case "ADB":
console.log('b');
break;
case "PWP":
console.log('c');
break;
}
答案 1 :(得分:5)
这是因为您没有How to Use a Swing Timer
声明。没有它,代码将“落空”。
break
存在这种情况的原因是因为有时它是有用的。你可以想象一个案例,你正在更新游戏的状态,以及为特定类型的敌人以及所有敌人发生的事情。
var x = 10;
switch (x) {
case 10:
console.log('With break');
break;
case 20:
console.log('I never run');
break;
}
console.log('-------');
switch (x) {
case 10:
console.log('Without');
case 20:
console.log('a break');
case 30:
console.log('it just');
case 40:
console.log('keeps going');
}
利用堕落并不是很常见,但确实有其用例。
最后,这是您的代码应该是什么样的:
var characterType = 'big boss';
switch (characterType) {
case 'big boss':
console.log('Update the big boss');
case 'enemy':
console.log('The big boss is also an enemy so run the basic enemy code');
break;
case 'player':
console.log('The boss is not a player so we will not run this.');
break;
}