相关疑难解决方法(0)

香草JavaScript事件代表团

在vanilla js中进行事件授权的最佳方式(最快/最合适)是什么?

例如,如果我在jQuery中有这个:

$('#main').on('click', '.focused', function(){
    settingsPanel();
});
Run Code Online (Sandbox Code Playgroud)

我怎样才能将其翻译成香草js?或许有.addEventListener()

我能想到这样做的方式是:

document.getElementById('main').addEventListener('click', dothis);
function dothis(){
    // now in jQuery
    $(this).children().each(function(){
         if($(this).is('.focused') settingsPanel();
    }); 
 }
Run Code Online (Sandbox Code Playgroud)

但这似乎效率低下,特别是如果#main有很多孩子.

这是正确的方法吗?

document.getElementById('main').addEventListener('click', doThis);
function doThis(event){
    if($(event.target).is('.focused') || $(event.target).parents().is('.focused') settingsPanel();
}
Run Code Online (Sandbox Code Playgroud)

javascript

10
推荐指数
2
解决办法
3103
查看次数

标签 统计

javascript ×1