就像在PHP中我需要一个变量变量。
我从html获取数据类型,该变量实际上是js代码中的一个函数。
我明白了,我需要打电话给它。 每次都不同,所以我不知道究竟是哪一个。
if (e.which == 114 || e.which == 116) {
var action = $('.active').data("action");
action();
}
function testing() {
alert('yes');
}
这里函数名称正在测试。变量动作正在持有它。 我怎么称呼它? 我记得有一个简单的语法,但我找不到它。 感谢
答案 0 :(得分:0)
它取决于保存该功能的对象。对于全局范围使用:window[action]()
。否则,请将window
替换为您的对象名称:myObject[action]()
。但是,此解决方案不适用于在私有范围内声明的函数:
function f(fnName) {
function a() { alert('a') };
function b() { alert('b') };
fnName(); // error
}
在这种情况下,你可以像这样使用eval(⚠保持对输入的控制:):
function f(fnName) {
function a() { alert('a') };
function b() { alert('b') };
eval(fnName)();
}
否则你可以将它们包装在一个像这样的对象中:
function f(fnName) {
var wrapper = {};
wrapper.a = function () { alert('a') };
wrapper.b = function () { alert('b') };
wrapper[fnName]();
}
f('a'); // alerts "a"
f('b'); // alerts "b"
答案 1 :(得分:0)
您可以提取值并使用eval()。
<div id="something" data-action="alert('test')">SOME DIV</div>
$(document).ready(function() {
var $myObject = $("#something");
var action = $myObject.data('action');
$myObject.click(function() {
eval(action);
});
});