[英]how can i make a value from variable be a function name?
我创建了一个练习程序,从json创建一个动态菜单。 然后,每次单击该动态菜单时,都会出现一个选项卡,其中包含选项卡名称,具体取决于您单击的选项卡的名称。
我现在想要的,我还在想,是每次我点击菜单,它会调用一个与我点击的菜单名称相同的功能。但我只是不知道该怎么做。 我的js函数是一个单独的文件。 这是代码:
....
$('.menu').click(function () {
dyna_tabs.add('Tab' + $(this).attr("rel"), //this is for the <a href= "-">
$(this).attr("rel"), //this if for the title
$(this).html()); // for the tab_content
fname = $(this).html(); // this is my variable name which i plan to use as function name
alert('this would be my function name ' + fname);
fname();
});
....
您可以在此处找到其余的动态选项卡代码。 我只是做了一些编辑,从菜单中创建菜单然后选项卡。
所以...我输入fname();
其中fname保存所谓的我的函数名称的值。 但每次我运行我的程序时,错误消息显示“fname不是函数”。 这里的任何人都知道如何做到这一点吗? 请....
还有一件事,是否有人知道如何在我的动态标签中放置一些HTML代码。 或者里面的.html页面? 谢谢你的阅读
您可以使用另一个将调用必要功能的函数。 喜欢:
loader(fname);
function loader(s) {
switch(s) {
case 'xy': xy(); break;
...
}
}
您的另一个选择可能是将您的函数存储在一个对象中:
var myFunctions={
'xy' : function () {
//do something here
},
...
};
然后你可以轻松地称呼它们:
myFunctions[fname];
这些不是完整的解决方案,只是您可以遵循的一些指导原则。 优于eval的优势在于,使用这些解决方案,您无法运行的功能无法运行。 只能调用预定义的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.