我正在尝试从我定义的变量中运行一个函数,尽管它不起作用。
这是我的意思的一个例子:
$(document).ready(function(){
function red () {
alert("You chose the color red");
}
function blue () {
alert("You chose the color blue");
}
$(window).resize(function() {
var colorvalue = "blue" + "();";
return colorvalue
});
});
如果有人可以纠正我错误的逻辑,那将是有帮助的,谢谢。
解决了!这里有完整的解决方案
function red () {
alert("You chose the color red");
}
function blue () {
alert("You chose the color blue");
}
$(document).ready(function(){
$(window).resize(function() {
var colorvalue = "blue";
var callable = window[colourvalue];
callable();
});
});
答案 0 :(得分:1)
试试这个:
var red = function{ alert("You chose the color red"); };
var blue = function{ alert("You chose the color blue"); };
$(document).ready(function(){
$(window).resize(function() {
var colorvalue = window["blue"];
return colorvalue();
});
});
通过这种方式,您可以在不使用eval
的情况下评估要调用的目标函数。
答案 1 :(得分:1)
将您的功能置于文档就绪功能之外。如下所示
function red() {
alert("You chose the color red");
}
function blue() {
alert("You chose the color blue");
}
$(document).ready(function () {
$(window).resize(function () {
var colorvalue = "blue" + "();";
return eval(colorvalue);
});
});
如果你想在文件准备中使用,那么就像onclick一样使用特定的id:exp:$(“#target”)。click(); REF
答案 2 :(得分:1)
你应该试试
return eval(colorvalue);
答案 3 :(得分:1)
以下代码绝对可以使用
$(window).resize(function() {
var callable = window["blue"];
callable();
});
试试吧
答案 4 :(得分:1)
使用函数作为方法设置对象。 (这避免了多个全局变量。)
var colour = {
red: function{ ... },
blue: function{ ... }
}
然后调用colour[myOption]
,其中myOption
以某种方式设置为“蓝色”或“红色”(可能由用户提供)。
答案 5 :(得分:0)
var red = function(){
// doSomething
}
var blue = function(){
//doSomething
}
答案 6 :(得分:0)
只是做:
var colorvalue = blue;
return colorvalue();
虽然注意alert()
函数没有返回任何内容,并且你的函数甚至没有返回任何内容,所以现在你的函数将返回undefined
。也许你的意思是将它们定义为:
function blue () {
var msg = "You chose the color blue";
alert(msg);
return msg;
}