我下面有一段使用Jquery的click()事件处理程序的代码。



//advance automaton by one step
	$('#nextstep').click(function() {
		if (canAdvanceAutomaton) {
			runAutomaton(logicalGrid);
		}
	});





我以为.click()接受匿名函数,因此我尝试将代码更改为以下代码。



//advance automaton by one step
	$('#nextstep').click = () => {
		if (canAdvanceAutomaton) {
			runAutomaton(logicalGrid);
		}
	};





我相信这两段代码是等效的,但是事实证明,当我用canAdvanceAutomaton单击html id时,后一版本不能运行我的#nextstep函数,并且在控制台中看不到任何错误。谁能告诉我为什么这两种调用.click()的方式不相同?

最佳答案

两种代码都使用匿名函数,但是在第二种方法中,当您要将箭头函数传递给click方法时,尝试将其分配给.click属性:

$('#nextstep').click(() => {
  if (canAdvanceAutomaton) {
    runAutomaton(logicalGrid);
  }
});

关于javascript - 如何将匿名函数传递给Jquery的点击处理程序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55205001/

10-16 11:48