javascript - 将 jQuery 事件作为变量传递

标签 javascript jquery

您可以使用 JavaScript 执行此操作:

function bar(test) {
    alert(test);
}
var foo = bar;
foo('hi');

我希望能够用 jQuery 事件做一些类似的事情:

var foo = $('#bork').click;
foo(function() { alert('I was just clicked.'); });

但是,当页面加载时出现错误:this.bind is not a function。我对这里的事件做错了吗?有没有更好的方法来达到同样的效果?

最佳答案

其他答案似乎没有解决技术问题:

为什么这样做:

$('#bork').click(function() { alert('I was just clicked.'); });

但不是这个:

var foo = $('#bork').click;
foo(function() { alert('I was just clicked.'); });

两者看起来是一样的,但问题是click函数实现中的“this”引用了第一个例子中的jQuery对象,但它在第二个示例中引用了 foo。由于您尚未定义 foo.bind,因此在 click 的实现中调用“this.bind”失败。

这里是 a great article about the ins and outs of binding/scoping in Javascript .

关于javascript - 将 jQuery 事件作为变量传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/587905/

相关文章:

javascript - ES6 剩余参数参数示例

javascript - 如何有条件地将数组转换为对象

jquery - 将图像插入标题 HTML 属性

javascript - 如何防止css transform动画跳转?

jquery - 添加后删除元素

JavaScript:有人能告诉我我的代码出了什么问题吗?

javascript - JS 中的拖放区域 - 文件输入

javascript - 如何在字符串中引用/插入 href 变量?

javascript - 将 javascript 代码转换为 jquery 代码时出错

javascript - $(window).load 和 $(document).ready 有什么区别?