【发布时间】:2018-08-02 16:22:00
【问题描述】:
在 jQuery 中,我们习惯于像这样绑定点击处理程序:
$(".all-buttons").click(function() {
var btn = this;
console.log(btn.innerHTML);
});
我希望能够使用与 ES6 箭头函数相同的功能,如下所示:
$(".all-buttons").click(btn => console.log(btn.innerHTML));
问题是 jQuery 不像其他原生 javascript 函数那样将当前元素作为参数传递,例如 Array.forEach()
另一个问题是箭头函数不能被“应用”,即像 fn.apply(this, args) 这样调用,这是 jQuery 依赖于让我知道哪个元素触发了事件。
我只是将“点击”示例放在这里,但我希望能够将其应用于任何 jQuery 回调。
有人对如何实现这一目标有任何建议吗?也许使用不同的库来调用我的回调,并将元素作为参数?或者可能是一个 jquery 插件?还是我不知道的 javascript 技巧?
感谢您的帮助。
【问题讨论】:
-
事件处理程序将
Event作为参数。这包括元素。 -
您希望
apply看起来如何? -
为什么不用function关键字?
标签: jquery ecmascript-6 arrow-functions