Javascript 使用interSectionObserver检查元素是否存在
我正在尝试使用IntersectionObserver检查ID为Javascript 使用interSectionObserver检查元素是否存在,javascript,reactjs,next.js,Javascript,Reactjs,Next.js,我正在尝试使用IntersectionObserver检查ID为cartTotal的div是否存在 我有一个弹出的模态,因此在模态安装之前div不存在 由于以下原因,我收到一个错误:未能在“IntersectionObserver”上执行“observe”:参数1不是“Element”类型。 如何通过检查元素是否存在来避免此错误 useEffect(() => { let message = document.querySelector('#__next'); // I
cartTotal
的div是否存在
我有一个弹出的模态,因此在模态安装之前div不存在
由于以下原因,我收到一个错误:未能在“IntersectionObserver”上执行“observe”:参数1不是“Element”类型。
如何通过检查元素是否存在来避免此错误
useEffect(() => {
let message = document.querySelector('#__next');
// INTERSECTION OBSERVER STUFF
const io = new IntersectionObserver(entries => {
entries.forEach(entry => { console.log(entry)
})
}, {
threshold: [0]
});
// ELEMENTS TO OBSERVE
const blk1 = document.querySelector('#cartTotal') ? document.querySelector('#cartTotal') : ''
// START OBSERVING ELEMENTS
io.observe(blk1);
您是否尝试过将threshold设置为1.0,并将#cartTotal元素添加到同一个options对象中,而不是在实例化IntersectionObserver之后?如果我理解正确,此模式的id为
cartTotal
,您希望在它弹出时进行“观察”,对吗?在模式弹出之前,没有id为cartTotal的元素,对吧?对@ParamaKar@HeraldSmit我尝试了这一点,但我得到了相同的错误,因为在模态加载div之前,div最初不存在。我认为更合适的选择是使用突变观察者API,它检查DOM树中所做的更改: