【发布时间】:2019-03-10 00:00:16
【问题描述】:
我的任务是将所有 jquery 代码转换为 es6 兼容代码。
示例:
-
jQuery
$('.class1 .class2').on('click', function(e) { // logic here } -
ES6 兼容
const test = document.querySelector('.class1 .class2'); test.addEventListener('click', (e) => { //logic here });
这工作正常,但我无法转换稍后注册的 dom 点击事件。
示例:
-
jQuery
$(document).on('click', '.class1 .pagination a', function(e) { //logic here })
我想做什么:
var classname = document.querySelectorAll(".class1 .pagination a");
Array.from(classname).forEach(function(element) {
element.addEventListener('click', (e)=>{
e.preventDefault();
alert(e);
});
});
这里的类.class1 .pagination a 是稍后注册的,所以类名变空了。
但是使用 jquery $(document).on('click', '.class1 .pagination a') 可以正常工作。
关于如何将$(document).on('click', '.class1 .pagination a') 类似事件转换为 es6 的任何指针?
【问题讨论】:
-
所以您要问的简短问题是“如何在 javascript 中进行委托事件绑定”
-
我不知道你为什么使用数组。
-
具体回答stackoverflow.com/a/33015903/1586174展示了一些委托逻辑的sn-ps
标签: javascript jquery ecmascript-6