将包含选择器参数的jQuery .on()转换为Vanilla JS

时间:2019-08-09 05:37:23

标签: javascript jquery events

我的任务是将jQuery转换为普通JS。我在找出在selector事件处理程序中转换.on()参数的正确方法时遇到麻烦。

.on( events [, selector ] [, data ], handler )

我对selector中的.on()参数实际上是如何工作以及正确复制它所需要做的工作一无所知。

这是我要转换的jQuery:

// jQuery I'm converting from
$('body').on('touchstart', '#chatListDisplay .chatEl', () => { ... });

我尝试仅通过将selector参数传递到querySelectorAll()中来包含原始jQuery中使用的元素。

// My attempt at vanilla
var chatEls = document.querySelectorAll('body #chatListDisplay .chatEl');
chatEls.forEach((el) => {
    el.addEventListener('touchstart', () => { ... });
});

在这种情况下,事件处理程序永远不会触发,因此我花了一些时间思考一下我的尝试在jQuery中实际代表了什么。它可能与此匹配:

$('body #chatListDisplay .chatEl').on('touchstart', () => { ... });

如预期的那样,将原始jQuery更改为上述内容也会导致事件处理程序无法触发。

0 个答案:

没有答案