Use the .closest method to transfer recursive parent class checking into the browser engine for an expected performance improvement (#840)
https://developer.mozilla.org/en-US/docs/Web/API/Element/closest available on all modern browsers
This commit is contained in:
@@ -230,7 +230,11 @@ export function isBlocked(node: Node | null, blockClass: blockClass): boolean {
|
||||
if (node.nodeType === node.ELEMENT_NODE) {
|
||||
let needBlock = false;
|
||||
if (typeof blockClass === 'string') {
|
||||
needBlock = (node as HTMLElement).classList.contains(blockClass);
|
||||
if ((node as HTMLElement).closest !== undefined) {
|
||||
return (node as HTMLElement).closest('.' + blockClass) !== null;
|
||||
} else {
|
||||
needBlock = (node as HTMLElement).classList.contains(blockClass);
|
||||
}
|
||||
} else {
|
||||
(node as HTMLElement).classList.forEach((className) => {
|
||||
if (blockClass.test(className)) {
|
||||
|
||||
Reference in New Issue
Block a user