2017-06-01 42 views
-2

我试图做到这一点,当我运行一个函数时,它也运行我的switch语句,以便我的“选择”变量被检查(通过开关)决定要输出给用户的内容。如何在每个函数运行后运行我的开关状态?

当function1()运行时...运行switch ... case“option1”... Javascript tel我说:“选择了选项1”。

我可以只是将我的switch语句包装在for循环中,并且有一个参数用于查找我的三个函数中的任何一个运行时是否运行switch语句?

var choice = "undefined"; 

    function option1() { 
     "use strict"; 
     var choice = "option1"; 
    } 
    function option2() { 
     "use strict"; 
     var choice = "option2"; 
    } 
    function option3() { 
     "use strict"; 
     var choice = "option3"; 
    } 

    switch (choice) { 
     case 'option1': 
     alert("Option 1 selected");  
     break; 
     case 'option2': 
     alert("Option 2 selected");  
     break; 
     case 'option3': 
     alert("Option 3 selected");  
     break; 
     default: 

     break; 
    } 
+0

观测值是非常复杂的,你必须使用代理。我只能推荐以不同的方式设计你的问题。 – PeterMader

+0

欢迎来到Stack Overflow!请[参观],环顾四周,并阅读[帮助],特别是[*我如何提出一个好问题?*](/帮助/如何问)我也建议通过一些工作在开始在Stack Overflow上发布JS问题之前,先阅读JavaScript教程和/或开始的JavaScript书籍。 –

+0

为什么不只是把'alert(“Option 1 selected”);'在你的函数'option1'里面,等等? –

回答

0

当变量发生变化时,您将不得不重新运行switch语句。您的option函数中的choice变量也不应使用var重新声明(您正在创建新变量而不是分配给现有变量)。

var choice = "undefined"; 

function option1() { 
    "use strict"; 
    choice = "option1"; 
    onChoiceChange(); 
} 

function option2() { 
    "use strict"; 
    choice = "option2"; 
    onChoiceChange(); 
} 

function option3() { 
    "use strict"; 
    choice = "option3"; 
    onChoiceChange(); 
} 

function onChoiceChange() { 
    switch (choice) { 
    case 'option1': 
     alert("Option 1 selected");  
     break; 
    case 'option2': 
     alert("Option 2 selected");  
     break; 
    case 'option3': 
     alert("Option 3 selected");  
     break; 
    default: 

    break; 
    } 
} 
+0

非常感谢!这使得完全更有意义!我会给它一个:) –

0

我真的不明白你想要做什么......

<a class="button" href="#" onClick="choice('option1')">Choice Me</a> 

function choice(valor) { 

    switch (valor) { 
     case 'option1': 
     alert("Option 1 selected");  
     break; 
     case 'option2': 
     alert("Option 2 selected");  
     break; 
     case 'option3': 
     alert("Option 3 selected");  
     break; 
     default: 

     break; 
    } 
} 
相关问题