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) {
|
if (node.nodeType === node.ELEMENT_NODE) {
|
||||||
let needBlock = false;
|
let needBlock = false;
|
||||||
if (typeof blockClass === 'string') {
|
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 {
|
} else {
|
||||||
(node as HTMLElement).classList.forEach((className) => {
|
(node as HTMLElement).classList.forEach((className) => {
|
||||||
if (blockClass.test(className)) {
|
if (blockClass.test(className)) {
|
||||||
|
|||||||
Reference in New Issue
Block a user