将具有addEventListener和参数的Arrow函数转换为常规ES5函数

时间:2019-02-15 19:51:25

标签: jquery arrow-functions jplist

在将带有addEventListener和参数的箭头函数转换为常规ES5函数时遇到一些问题。

试图进行转换(按预期方式工作):

element.addEventListener('jplist.state', (e) => {
    //do something
});

对此(无效):

element.addEventListener("jplist.state", function(e){
    //do something
});

但是我假设我错过了一些东西(从JPList filter plugin获得的原始箭头功能)。

我之所以要进行此更改,是因为即使使用polyfill,IE11也会为=>引发错误。

2 个答案:

答案 0 :(得分:0)

首先,您不能多填新语法。它由使用中的JavaScript引擎评估,并且该引擎无法被JavaScript修改。

第二,将(e) => {}更改为function (e) {}没什么区别,因此更改语法不是错误。

答案 1 :(得分:0)

函数语法的变化(从箭头函数变为常规)。这里的问题与我使用addEventListener有关,却忽略了我需要为我的案例中所需的 useCapture 参数提供“,true” 的事实。

所以最后,我使用了:

element.addEventListener("jplist.state", function(e){
    //do something
}, true);