2010-06-14 21 views
-1
function FM_log(level, text) { 

    // caso não seja log total escolhe o que loga 
    var log = false; 
    switch (level) { 
     case "addtoprio()":log = true; 
     case "alternaTropas()":log = false; 
     case "sendtroops()":log = false; 
     defalt: log = false; 
    } 

    if ((logTotal == false) && (log == true)) 
     GM_log(horaAtual() + " - "+level+", "+text); 
    else if (logTotal == true) 
     GM_log(horaAtual() + " - "+level+", "+text);  
} 

如何做到這一點是一種切換方式?javascript - 開關不工作

回答

8

break陳述,以及 「默認」 可以幫助你對你的方式:)

function FM_log(level, text) 
{ 
    // caso não seja log total escolhe o que loga 
    var log = false; 
    switch (level) 
    { 
     case "addtoprio()": 
     log = true; 
     break; 
     case "alternaTropas()": 
     log = false; 
     break; 
     case "sendtroops()": 
     log = false; 
     break; 
     default: 
     log = false; 
     break; 
    } 

    if ((logTotal == false) && (log == true)) 
     GM_log(horaAtual() + " - "+level+", "+text); 
    else if (logTotal == true) 
     GM_log(horaAtual() + " - "+level+", "+text);  
} 
正確拼寫
2

您必須在每種情況之後添加break指令,並使用default默認值。

4

兩個問題:

  • 你缺少每個case條款後break關鍵字。
  • 您的default拼寫錯誤。

switch (level) { 
     case "addtoprio()":log = true; break; 
     case "alternaTropas()":log = false; break; 
     case "sendtroops()":log = false; break; 
     default: log = false; break; 
    } 

More On Switch

+0

相同在這裏:默認不折騰。 – Aif 2010-06-14 18:52:10

+0

@Aif:是的,他的拼寫不對。 – Sarfraz 2010-06-14 18:56:19

2

它改成這樣:爲交換機

function FM_log(level, text) { 

    // caso não seja log total escolhe o que loga 
    var log = false; 
    switch (level) { 
     case "addtoprio()":log = true; break; 
     case "alternaTropas()":log = false; break; 
     case "sendtroops()":log = false; break; 
     defalt: log = false; break; 
    } 

    if ((logTotal == false) && (log == true)) 
     GM_log(horaAtual() + " - "+level+", "+text); 
    else if (logTotal == true) 
     GM_log(horaAtual() + " - "+level+", "+text);  
} 
0

我有類似的情況,添加一個break語句不糾正pr oblem。我最終通過確保將字符串類型傳遞到switch語句中來糾正了這個問題。你可以在var newStr = level + "";的情況下做到這一點。 + ""將確保它是一個字符串類型。然後將newStr傳入您的switch語句。