materializecss 1.0.0 在使用 jquery 更改 dom 后重新初始化 - 错误:TypeError:'instanceof' 的右侧不可调用
Posted
技术标签:
【中文标题】materializecss 1.0.0 在使用 jquery 更改 dom 后重新初始化 - 错误:TypeError:\'instanceof\' 的右侧不可调用【英文标题】:materializecss 1.0.0 reinitialize after dom change with jquery - ERROR: TypeError: Right-hand side of 'instanceof' is not callablematerializecss 1.0.0 在使用 jquery 更改 dom 后重新初始化 - 错误:TypeError:'instanceof' 的右侧不可调用 【发布时间】:2021-11-23 22:21:06 【问题描述】:早安,
我有一个使用 jQuery 的 materializecss 的项目。我有一个已经充满了物化元素的 DOM,一切都很好。
但是,一旦我生成一个包含新 DOM 元素(例如日期选择器)的“弹出窗口”,它们就不起作用了。根据documentation,我可以读到 M.AutoInit() 在开始时正在运行,因此元素尚未初始化。
如何确保所有元素(无论是否弹出)始终有效?
如果我再次尝试初始化日期选择器,我会收到以下错误:
materialize.min.js:6 Uncaught TypeError: 'instanceof' 的右侧不可调用
这就是它对弹出窗口中未包含的元素的工作方式:
$('.datepicker').datepicker(<options>);
【问题讨论】:
【参考方案1】:我发现了问题。在我创建这些弹出窗口的脚本中,有一个名为“Element”的变量。它是一个类属性。我想覆盖它,但没有这个,因为 javascript 对此很灵活。现在的问题正是,materializecss 也有一个名为“Element”的变量。所以我改了这个,用$(".datepicker").datepicker();
触发了一个错误。
【讨论】:
以上是关于materializecss 1.0.0 在使用 jquery 更改 dom 后重新初始化 - 错误:TypeError:'instanceof' 的右侧不可调用的主要内容,如果未能解决你的问题,请参考以下文章
在 Vue.js 和 Materializecss 中使用多个“选择”HTML 元素
如何在 Vue.js 中使用 MaterializeCss?