我確信這個問題肯定有一個非常簡單的答案,但冒着聽起來很愚蠢的風險 - 我無法讓這個開關語句正常工作。輸入變量'status'可以是'public'或'draft',我可以向你保證它只保存這兩個值中的一個,因爲我已經在各個階段提醒它了,無論如何,這裏的if語句有效。看看:Javascript switch語句 - 很簡單,我做錯了什麼?
function switch_status(status){
if (status == 'public'){
return false;
} if (status == 'draft') {
return true;
}
^這個工作,但用下面的'switch'語句替換'if'不起作用。
switch(status){
case 'public':
return false;
case 'draft':
return true;
}
}
第一個給我提供了不可避免的尷尬簡單的答案贏得了我的榮譽!
編輯:這是我的全部代碼 -
$('.status').live('click',
function(){
fullClass = $(this).attr('class');
id = fullClass.split(' ').slice(-1);
status = fullClass.split(' ').slice(-2,-1);
var newStatus = switch_status(status);
alert(newStatus);
});
function switch_status(status){
// if (status == 'public'){
// return false;
// } if (status == 'draft') {
// return true;
// }
switch(status){
case 'public':
return false;
case 'draft':
return true;
}
}
使用'switch'時報錯嗎?一些上下文代碼也可能有幫助 - 沒有任何發佈會顯示問題。 – 2010-12-15 16:13:12
嘗試添加最後一種情況後的默認代碼塊 - 默認值:返回false – lnrbob 2010-12-15 16:18:17
@ g.d.d.c我剛剛附加了完整代碼的問題。警報顯示'undefined',但是當用'if'代替'switch'時,我得到正確的返回值...(!??) – Inigo 2010-12-15 16:19:13