【问题标题】:Javascript add function call with parameters to buttonJavascript将带有参数的函数调用添加到按钮
【发布时间】:2017-08-16 17:20:48
【问题描述】:

我想通过javascript向HTML按钮添加一个包含参数的函数调用。我知道这个主题有很多问题,但我找到的答案都没有对我有用。

注意:我的 HTML 和 JS 位于正确链接的单独文件中(JS 代码有效)

问题: 我可以像这样添加函数调用:

var $add  = $("#add");
$add.click(myFunction);

但是$add.click(myFunction(i)); 不起作用。(也尝试使用特定整数)

我也尝试过以下方式:

document.getElementById('add').onclick = function() {myFunction(i);};

但是这样的功能甚至没有应用到按钮上。

我的函数在 JS 文件中是这样定义的:

function myFunction(length) {

//do stuff with length I would notice

}

【问题讨论】:

  • 标题为“div”,问题为“按钮”。两者都应该工作,但我选择了“按钮”。
  • 已编辑,感谢您的留言
  • 能否展示完整的代码sn-p。你如何/在哪里定义i
  • 我主要是用myFunction(1)而不是i来测试它,但也没有用,所以我认为这不是问题

标签: javascript jquery html


【解决方案1】:

您可以使用函数绑定之类的东西,也可以使用处理程序:

$add.click(function(e){
  myFunction(i);
});

【讨论】:

  • 像魅力一样工作,谢谢!你能解释一下为什么这行得通而我的行不通吗?
  • 你用的是这个:$add.click(myFunction(i)) 所以你绑定的是执行函数 myFunction 的返回值而不是函数本身,绑定用于仅功能。这两者之间有区别: var a = myFunction;var b = myFunction(i); //a: 是函数对象的引用,b: 是被调用函数的返回值。 $add.click(handler) 一个函数对象,要充斥着点击事件。它会像这样调用: handler(e) //其中 e 是事件触发的事件对象数据
猜你喜欢
  • 2016-09-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-05
  • 2020-12-20
  • 2020-05-31
  • 1970-01-01
相关资源
最近更新 更多