首先看下MDN:https://developer.mozilla.org/en-US/docs/Web/API/Element/closest

在jQuery时代,这个非常常见

$( document ).bind("click", function( e ) {
    $( e.target ).closest("li").toggleClass("hilight");
});

closest() 方法

需要获取点击、拖动等 (click/mouseove/dragover)触发元素的指定父元素,告别jquer还真的麻烦。但是closest() 真香!

这个方法会从当前元素开始,遍历 DOM 树,并且返回和给定参数匹配的最近的祖先

function closest(Element,selector){
    return Element.closest(selector); 
}

不过需要注意的是

e.target与e.currentTarget的区别:

  • e.target 指向的是触发事件监听的对象(事件源)。

  • e.currentTarget 指向添加监听事件的对象(绑定事件的dom元素)。

 

转载本站文章《target.closest妙用:UI(click/mousemove/drag/drop)事件元素查找捷径》,
请注明出处:https://www.zhoulujun.cn/html/webfront/SGML/web/2019_0913_8893.html