2010-06-14 65 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语句。