有没有办法用纯JS为mouseenter事件类型添加'live'事件监听器
Is there a way to add 'live' Event listener for mouseenter event type with pure JS
我正在尝试在纯 JavaScript 中添加实时版本的事件侦听器来监视 mouseenter
事件,以便每次用户在特定元素上输入鼠标时执行特定功能。
这是我所拥有的,但它并没有持续监控 mouseenter
:
const selector = document.querySelector('#selectorId');
if (selector) {
selector.addEventListener('mouseenter', e => {
e.stopPropagation();
myFunc();
}, false);
}
目标是即使在 DOM 更新后继续收听此事件
有什么想法吗?
嗯,经过一些研究我得出结论,使用变异观察器是一种可行的方法。
这是一个我很满意的解决方案,适用于遇到同样问题的任何其他人:
MutationObserver = window.MutationObserver || window.WebKitMutationObserver;
const observer = new MutationObserver(function (mutations, observer) {
// fired when a mutation occurs
(function () {
const selector = document.querySelector('#selectorId');
if (selector) {
selector.addEventListener('mouseenter', e => {
e.stopPropagation();
alert('bbb');
}, false);
}
})();
});
// define what element should be observed by the observer
// and what types of mutations trigger the callback
observer.observe(document, {
subtree: true,
attributes: true
//...
});
感谢@apsillers 在以下线程中提供的有用技巧:Is there a JavaScript / jQuery DOM change listener?
我正在尝试在纯 JavaScript 中添加实时版本的事件侦听器来监视 mouseenter
事件,以便每次用户在特定元素上输入鼠标时执行特定功能。
这是我所拥有的,但它并没有持续监控 mouseenter
:
const selector = document.querySelector('#selectorId');
if (selector) {
selector.addEventListener('mouseenter', e => {
e.stopPropagation();
myFunc();
}, false);
}
目标是即使在 DOM 更新后继续收听此事件
有什么想法吗?
嗯,经过一些研究我得出结论,使用变异观察器是一种可行的方法。
这是一个我很满意的解决方案,适用于遇到同样问题的任何其他人:
MutationObserver = window.MutationObserver || window.WebKitMutationObserver;
const observer = new MutationObserver(function (mutations, observer) {
// fired when a mutation occurs
(function () {
const selector = document.querySelector('#selectorId');
if (selector) {
selector.addEventListener('mouseenter', e => {
e.stopPropagation();
alert('bbb');
}, false);
}
})();
});
// define what element should be observed by the observer
// and what types of mutations trigger the callback
observer.observe(document, {
subtree: true,
attributes: true
//...
});
感谢@apsillers 在以下线程中提供的有用技巧:Is there a JavaScript / jQuery DOM change listener?