@orca-fe/pocket
Version:
UI components by orca-team
42 lines (41 loc) • 965 B
JavaScript
/**
* check is `dom` inside parent with `classNames`
* @param dom
* @param classNames
* @param parent
*/
export default function isIn(dom, classNames, parent = document.body) {
var cName = classNames;
if (typeof classNames === 'string') {
cName = [classNames];
}
if (dom) {
for (var i = 0; i < cName.length; i += 1) {
var className = cName[i];
if (dom.classList.contains(className)) {
return true;
}
}
if (dom === parent) {
return false;
}
if (dom.parentElement) return isIn(dom.parentElement, classNames, parent);
}
return false;
}
/**
* check is `dom` inside something
* @param dom
* @param callback
* @param parent
*/
export function isInBy(dom, callback, parent = document.body) {
if (dom) {
if (dom === parent) {
return false;
}
if (callback(dom)) return true;
if (dom.parentElement) return isInBy(dom.parentElement, callback, parent);
}
return false;
}