javascript - 如何在可见按钮上应用带有 eventListener 的 MutationObserver?
问题描述
我有一个按钮:
<button type="button" id="errorLog" class="btn btn-secondary btn-lg btn-block">Download</button>
仅在满足条件时才可见。我正在尝试添加一个事件侦听器以根据按钮的可见性触发一些 JavaScript。在我的研究中,我发现我可以使用 aMutationObserver
但由于某种原因我收到以下错误:
“MutationObserver”上的“观察”:参数 1 不是“节点”类型
搜索后我确实看到了:
- “MutationObserver”上的“观察”:参数 1 不是“节点”类型
- 未捕获的 TypeError:无法在“MutationObserver”上执行“观察”:参数 1 不是“节点”类型
- MutationObserver div 更改 src
但由于某种原因,当我将代码编码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?
解决方案
推荐阅读
- version-control - 在 YouTrack 提交消息中添加多个工作项
- javascript - 如何在本机反应中正确管理地图初始状态?
- r - 如何使用 auto.arima 函数专门检查 ARIMA 中 AR 或 MA 的 RMSE 值,用于使用 R 的时间序列数据
- javascript - 如何格式化对象的对象
- r - x 轴上多个变量的散点图
- java - while 循环不会执行 SQL 中的所有记录
- azure - SSL/TSL 和普通流量的反向代理如何工作?
- wso2 - WSO2 身份服务器在与 ADFS 服务器集成时抛出 Nullpointerexception
- r - 以毫秒为单位的时间戳序列
- amazon-s3 - kafka connect 无法写入 S3 并出现 - ERROR Multipart upload