Merge pull request #2372 from tugcekucukoglu/styleclass

Fixed #2371 - StyleClass may fail to enter the element
pull/2374/head
Tuğçe Küçükoğlu 2022-03-30 15:07:37 +03:00 committed by GitHub
commit 158555acd8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 11 additions and 2 deletions

View File

@ -137,10 +137,11 @@ function resolveTarget(el, binding) {
function bindDocumentListener(target, el, binding) { function bindDocumentListener(target, el, binding) {
if (!target.$p_styleclass_documentlistener) { if (!target.$p_styleclass_documentlistener) {
target.$p_styleclass_documentlistener = (event) => { target.$p_styleclass_documentlistener = (event) => {
if (getComputedStyle(target).getPropertyValue('position') === 'static') { if (isVisible(target) || getComputedStyle(target).getPropertyValue('position') === 'static') {
unbindDocumentListener(target); unbindDocumentListener(target);
} }
else if (!el.isSameNode(event.target) && !el.contains(event.target) && !target.contains(event.target)) {
else if (isOutsideClick(event, target, el)) {
leave(target, binding); leave(target, binding);
} }
} }
@ -156,6 +157,14 @@ function unbindDocumentListener(target) {
} }
} }
function isVisible(target) {
return target.offsetParent !== null;
}
function isOutsideClick(event, target, el) {
return !el.isSameNode(event.target) && !el.contains(event.target) && !target.contains(event.target);
}
const StyleClass = { const StyleClass = {
mounted(el, binding) { mounted(el, binding) {
bind(el, binding); bind(el, binding);