Javascript 如何将函数名添加到处理程序单击?
我有一个按钮,我有功能,应该执行点击 例如:Javascript 如何将函数名添加到处理程序单击?,javascript,dynamic,Javascript,Dynamic,我有一个按钮,我有功能,应该执行点击 例如: <button id="button1">bla bla</button> <script> var justFunctionName = "function1"; var function1 = function() { alert("!"); } $("#button1").click(justFunctionName); </script> bla-bla var justFunction
<button id="button1">bla bla</button>
<script>
var justFunctionName = "function1";
var function1 = function()
{
alert("!");
}
$("#button1").click(justFunctionName);
</script>
bla-bla
var justFunctionName=“function1”;
var function1=函数()
{
警惕(“!”);
}
$(“#按钮1”)。单击(justFunctionName);
应该是
$("#button1").click(function1);
HTML
这是将字符串函数1分配给变量justFunctionName 如果要这样做:
console.log('justFunctionName')代码>您将得到以下结果:
>功能1
因此,此变量分配与您希望实现的目标完全无关。您不是将变量分配给函数,而是将变量分配给分配给函数的变量
现在看看你在这里做什么:
var function1 = function () {
alert("!");
};
这是将变量function1分配给执行警报的函数。在本例中,将变量视为函数的引用。为了让按钮触发警报,您需要调用对函数的引用(在本例中为function1):
为什么不直接调用function1
?为什么要使用变量名呢?在实际代码中,我在一个属性中声明了这个函数。他希望能够只使用一个名称调用函数,code Maverick的答案似乎就是这样。例如,如果您需要根据属性调用某个函数,例如根据对象的类型调用ValidatePhone()或ValidateEmail(),而不是调用Validate()并使用开关大小写来确定要调用哪个函数,那么我可以看到它非常方便。
<button id="button1">bla bla</button>
var justFunctionName = "function1";
function function1()
{
alert("!");
}
$("#button1").on("click", window[justFunctionName]);
var justFunctionName = "function1";
var function1 = function () {
alert("!");
};
$("#button1").click(function1);