我有一个按钮:
<button type="button" id="errorLog" class="btn btn-secondary btn-lg btn-block">Download</button>
仅在满足条件时可见。我试图添加一个事件侦听器,以基于按钮的可见性来触发一些JavaScript。在研究中,我发现我可以使用MutationObserver
,但是由于某种原因,我得到了一个错误:
在“ MutationObserver”上的“观察”:参数1的类型不是“节点”
搜索后,我确实看到了:
但是出于某种原因,当我将MutationObserver
编码为:
let errorFile = document.getElementById('errorLog')
var observer = new MutationObserver(function() {
if (errorFile.style.display == 'display') {
console.log('foobar')
}
})
const config = {
attributes: true,
childList: true,
characterData: true
}
observer.observe(errorFile, config)
我收到了Uncaught TypeError: Failed to execute 'observe' on 'MutationObserver': parameter 1 is not of type 'Node'
的错误,所以我尝试了以下条件:
let errorFile = document.getElementById('errorLog')
if (errorFile != null) {
var observer = new MutationObserver(function() {
if (errorFile.style.display == 'display') {
console.log('foobar')
errorLog.addEventListener('click', (e) => {
e.preventDefault
console.log('fired click')
})
}
})
const config = {
attributes: true,
childList: true,
characterData: true
}
observer.observe(errorFile, config)
}
我还引用了:
但它甚至不会触发。如何根据按钮的可见性触发JavaScript?