如何将函数名添加到处理程序单击?

时间:2014-01-08 16:20:03

标签: javascript dynamic

我有一个按钮,我有一个应该在点击时执行的功能。

示例:

<button id="button1">bla bla</button>

<script>
var justFunctionName = "function1";
var function1 = function()
{
alert("!");
}

$("#button1").click(justFunctionName);

</script>

3 个答案:

答案 0 :(得分:2)

HTML

<button id="button1">bla bla</button>



的jQuery

var justFunctionName = "function1";

function function1()
{
    alert("!");
}

$("#button1").on("click", window[justFunctionName]);



See working jsFiddle demo

答案 1 :(得分:-1)

$("#button1").click(justFunctionName);

应该是

$("#button1").click(function1);

答案 2 :(得分:-1)

var justFunctionName = "function1";

这是将字符串 function1 分配给变量 justFunctionName

如果您这样做:console.log('justFunctionName');,您最终会得到以下结果:

>function1

因此,此变量赋值与您希望实现的内容完全无关。您只需将变量赋值给赋值给函数的变量,而不仅仅是将变量赋值给函数。


现在看看你在这里做了什么:

var function1 = function () {
  alert("!");
};

这是为执行警报的功能分配变量 function1 。在这种情况下,将变量视为函数的引用。为了让按钮触发警报,您​​需要调用对函数的引用(在本例中为function1):

$("#button1").click(function1);