Javascript 如何在switch语句中添加execute自定义函数
我试图根据传递给下面函数的参数执行switch语句,并尝试根据传递的参数执行不同的函数。但是当我在第三种情况下尝试一个函数时,我在.js文件的开头得到了另一个函数的未捕获引用错误,如下所示Javascript 如何在switch语句中添加execute自定义函数,javascript,jquery,switch-statement,addclass,Javascript,Jquery,Switch Statement,Addclass,我试图根据传递给下面函数的参数执行switch语句,并尝试根据传递的参数执行不同的函数。但是当我在第三种情况下尝试一个函数时,我在.js文件的开头得到了另一个函数的未捕获引用错误,如下所示 function getjobCon(reqType){ var identifier= $( "#single" ).val(); switch (reqType) { case 'job':
function getjobCon(reqType){
var identifier= $( "#single" ).val();
switch (reqType) {
case 'job':
alert('you clicked job');
break;
case 'title':
alert('you clicked title');
break;
case 'designation': function(identifier){
$(this).addClass('slate');
}
break;
}
}
有人能告诉我怎么做吗?。我试了很多,但都没能改正
JS小提琴-
注意-单击不同的按钮时,我正在执行此功能。在第三种情况下,我正在更改按钮的类,在第三种情况下,我正在尝试执行另一个函数。只需删除函数语句,不需要它,或者只需调用您自己的,如图所示
function getjobCon(reqType){
var identifier= $( "#single" ).val();
switch (reqType) {
case 'job':
alert('you clicked job');
break;
case 'title':
alert('you clicked title');
break;
case 'designation':
customFunc(identifier);
break;
}
}
function customFunc(identifier) {
// put code here
}
只需删除函数语句,不需要它,或者只需调用您自己的函数语句,如图所示
function getjobCon(reqType){
var identifier= $( "#single" ).val();
switch (reqType) {
case 'job':
alert('you clicked job');
break;
case 'title':
alert('you clicked title');
break;
case 'designation':
customFunc(identifier);
break;
}
}
function customFunc(identifier) {
// put code here
}
您的代码存在一些问题
:
与对象文本中的=
不同。(我自己先没注意到,所以谢谢@WhiteHat)李>
此
将值从一个函数更改为另一个函数此
在外部函数中可能表示“当前HTML节点”,但在匿名函数中,除非定义了不同的内容,否则它很可能指的是窗口
()
或类似的名称来称呼它
我将使用,因为中指定的第一个参数是this
-参数,这意味着我可以在两种上下文中使this
保持“相同”
function getjobCon(reqType) {
var identifier= $( "#single" ).val();
switch (reqType) {
case 'job':
alert('you clicked job');
break;
case 'title':
alert('you clicked title');
break;
case 'designation':
(function(identifier){
$(this).addClass('slate');
}).call(this, identifier);
break;
}
}
}
但是,除非您迫切需要一个新的名称空间,否则我看不出有任何理由这样做,其他任何答案都可能足够。您的代码存在一些问题
:
与对象文本中的=
不同。(我自己先没注意到,所以谢谢@WhiteHat)李>
此
将值从一个函数更改为另一个函数此
在外部函数中可能表示“当前HTML节点”,但在匿名函数中,除非定义了不同的内容,否则它很可能指的是窗口
()
或类似的名称来称呼它
我将使用,因为中指定的第一个参数是this
-参数,这意味着我可以在两种上下文中使this
保持“相同”
function getjobCon(reqType) {
var identifier= $( "#single" ).val();
switch (reqType) {
case 'job':
alert('you clicked job');
break;
case 'title':
alert('you clicked title');
break;
case 'designation':
(function(identifier){
$(this).addClass('slate');
}).call(this, identifier);
break;
}
}
}
但是,除非您迫切需要一个新的名称空间,否则我看不出有任何理由这样做,其他任何答案都可能足够。您可以在这种情况下调用下一个函数 函数getjobCon(reqType){ 变量标识符=$(“#单个”).val(); 开关(REQ型){ “工作”案例: 警报(“您单击了作业”); 打破 “标题”一案: 警报(“您单击了标题”); 打破 “指定”案例: doStuff(标识符); 打破 } }; 函数doStuff(标识符){ //在这里执行其他代码
};代码>您可以在该案例中调用下一个函数 函数getjobCon(reqType){ 变量标识符=$(“#单个”).val(); 开关(REQ型){ “工作”案例: 警报(“您单击了作业”); 打破 “标题”一案: 警报(“您单击了标题”); 打破 “指定”案例: doStuff(标识符); 打破 } }; 函数doStuff(标识符){ //在这里执行其他代码
};代码>小提琴或钢笔可能有用我将添加小提琴。谢谢,补充说。如果我命名这个函数或者声明另一个函数,它就会工作。但我不想说出它的名字。我无法理解为什么有人想要在匿名函数中包装一行(多行)代码。只需将代码放入case语句中。除非你只是想让它难以阅读。我将在函数中用变量进行ajax调用。可以代替函数启动ajax调用吗?小提琴或钢笔可能会有帮助我将添加小提琴。谢谢,补充说。如果我命名这个函数或者声明另一个函数,它就会工作。但我不想说出它的名字。我无法理解为什么有人想要在匿名函数中包装一行(多行)代码。只需将代码放入case语句中。除非你只是想让它难以阅读。我将在函数中用变量进行ajax调用。可以代替函数启动ajax调用吗?谢谢您的回复。我不只是想添加类。我将在函数中添加更多功能。因此需要自定义函数。您可以简单地执行另一个函数,然后查看我的答案@bigbt@WhiteHat添加的修订版应该可以解决您的问题。谢谢您的回复。我不只是想添加类。我将在函数中添加更多功能。因此需要自定义函数。您可以简单地执行另一个函数,然后查看我的答案@bigbt@WhiteHat添加的修订版应该可以解决您的问题。在switch语句中定义这样一个未调用的匿名函数是毫无意义的。修复后,我认为OP没有包含完整的示例。不,不是。我还以为是在它前面的回信呢。我累了。谢谢大家的回答。我知道我是给函数命名还是单独编写可以工作。但我想知道我是否可以不做就申报。我将接受其中一个想法。对不起,我不清楚。再次感谢您的时间。谢谢您的一个bunh@whitehat。