javascript - JS 函数包装

标签 javascript jquery

考虑以下两个代码示例:

// Example 1
$('#myButton').click(function() {
    alert('I was clicked');
});

// Example 2
$('#myButton').click(
    alert('I was clicked');
);

为什么示例 2 不起作用?

最佳答案

您的第二个代码片段不起作用,因为它调用 alert() window 对象的方法(返回 undefined),并传递它返回的值(因此,undefined)作为 click() 的处理程序jQuery 对象的方法。

undefined 不是有效的事件处理程序,因此 click() 会忽略它并且不执行任何操作(除了可能将错误记录到控制台,具体取决于您的浏览器)。

您的第一个代码片段传递了一个真正的函数,该函数又调用alert()。由于它是一个函数,因此可以将其注册为事件处理程序。

关于javascript - JS 函数包装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15077931/

相关文章:

javascript - else 条件不适用于 jquery 中的 src 属性

javascript - 计算嵌套 Javascript 对象的重复属性值

javascript - 更改 json 数组中每个对象的特定键的 typeof

JavaScript 代码无法在表单上呈现部分内容

javascript - 显示内容两次 - Bootstrap Tabs

javascript - 如何使用 Angularjs 重新加载页面?

javascript - Bootstrap 和条件图像大小

javascript - Jquery:在检查最后一个字母时将文本从表单复制到 DIV

jquery - 用jquery计算动态添加的行并构建总计一列

php - 使用单选按钮隐藏以显示一些信息 jQuery