为什么外部函数会立即执行
Why do external functions get executed immediately?
我的代码中有一个声明的函数。每当我单击一个项目时,我都想调用这个函数。当我将其绑定到此项目时,它会立即执行,并且不会触发单击事件。
但是,当我在单击绑定中声明该函数时,它工作正常。
我想先在其他地方声明该函数,然后在单击事件发生时调用它
function test2() {
alert('test2');
}
$('body').on('click', '#test1', function() { alert('test1'); });
$('body').on('click', '#test2', test2());
https://jsfiddle.net/ag66r950/
$('body').on('click', '#test1', function() { alert('test1'); });
这是将函数句柄作为参数传递,而不是函数结果本身
而
$('body').on('click', '#test2', test2());
这是将函数执行的结果作为参数传递,而不是函数本身。
您需要在事件处理程序中传递函数本身的句柄
$('body').on('click', '#test2', test2);
相关文章:
- HTML表单提交时未执行外部函数
- 外部链接的Javascript文件赢得't执行,但函数有效
- 在外部JS执行后加载JavaScript
- 是否可以根据条件调用和执行外部 Javascript 文件
- eval() 不执行外部 (src=..) 脚本
- Chrome扩展程序:加载并执行外部脚本
- 从HTML页面执行外部.js文件,通过发送输入.xml并从外部文件获取输出.xml.js文件
- 使用 selenium webdriver 执行外部.js文件
- 通过 id 执行外部 js
- 可以在 html 页面中的一个元素上执行外部 js
- 如何要求 javascript 等待执行外部应用程序结束
- 使用不同的变量值多次执行外部javascript文件中的$(document).ready()中的代码
- 用javascript执行外部方法python
- 如何在Chrome扩展中同步执行外部js文件
- 主干模型——如何从事件处理程序执行外部函数
- 加载并有条件地执行外部js文件
- 如何从Javascript执行外部php
- 为 Firefox 中的每个页面预执行外部 JavaScript
- 什么会导致Firefox在执行外部脚本后多次请求资源
- 如何在AngularJS中创建元素时执行外部函数