通过 ajax 加载时 MaterialDesign、JS 行为丢失
MaterialDesign, JS behaviors lost when loaded through ajax
我从 Ajax、jQuery 等等开始,如果我在这里犯了愚蠢的错误,我深表歉意。
我正在使用 PHP/JS 构建网站,并使用 Google 的 Material 设计规范和 CSS:https://getmdl.io/components/
我的页面是这样构建的:
- index.php,这是主页(带有指向 css、js 文件等的链接...)
- 包含一个 div,其中加载了其他 php "modules"(不同的 php 文件,仅包含一些需要的部分)。
我的问题是,在这些加载的页面中,Material 设计 类 的每个 "special" 行为都完全丢失(按钮上没有 "ripple effect",文本字段标签不' 消失因此与文本字段内容重叠,等等......)。 css 样式很好(显示 material 设计颜色,视觉上效果很好)但点击时的行为等...
知道如何解决这个问题吗?
非常感谢!
在深入研究 jQuery githubs 问题报告后找到了解决方案。似乎组件在通过 AJAX.
加载时没有被 DOM 升级
必须在通过 AJAX 加载的页面中添加以下调用:
componentHandler.upgradeDom();
要么通过函数调用,要么通过ajax完成监听,例如:
$('body').ajaxComplete(function () {
componentHandler.upgradeDom();
});
我从 Ajax、jQuery 等等开始,如果我在这里犯了愚蠢的错误,我深表歉意。 我正在使用 PHP/JS 构建网站,并使用 Google 的 Material 设计规范和 CSS:https://getmdl.io/components/
我的页面是这样构建的: - index.php,这是主页(带有指向 css、js 文件等的链接...) - 包含一个 div,其中加载了其他 php "modules"(不同的 php 文件,仅包含一些需要的部分)。
我的问题是,在这些加载的页面中,Material 设计 类 的每个 "special" 行为都完全丢失(按钮上没有 "ripple effect",文本字段标签不' 消失因此与文本字段内容重叠,等等......)。 css 样式很好(显示 material 设计颜色,视觉上效果很好)但点击时的行为等...
知道如何解决这个问题吗? 非常感谢!
在深入研究 jQuery githubs 问题报告后找到了解决方案。似乎组件在通过 AJAX.
加载时没有被 DOM 升级必须在通过 AJAX 加载的页面中添加以下调用:
componentHandler.upgradeDom();
要么通过函数调用,要么通过ajax完成监听,例如:
$('body').ajaxComplete(function () {
componentHandler.upgradeDom();
});