Material Design Lite JS未应用于动态加载的html文件
Material Design Lite JS not applied to dynamically loaded html file
我想统一我的网站的导航布局,所以我创建了一个单独的html文件,其中包含导航代码。我使用JS动态加载文件:
$("#navigation").load("/navigation/navigation.html", function() {
$.getScript('/material.min.js');
});
问题是material.min.js没有为这个html中动态加载的组件执行,我失去了一些关键的功能。我该怎么解决?
检查componentHandler
是否已加载,并尝试在加载后升级元素。
if(!(typeof(componentHandler) == 'undefined')){
componentHandler.upgradeAllRegistered();
}
组件处理程序如何工作
简而言之,这会覆盖所有注册的组件。使用所提供的CSS类查询所有节点。循环这些并逐一实例化它们。在节点上完成升级后,升级后的对象将添加到数据集中。此对象包含以逗号分隔的组件
classAsString
属性列表,用于标识已完成的升级。
来自官方文档:
Material Design Lite将在页面加载时自动注册并呈现所有标有MDL类的元素。但是,在动态创建DOM元素的情况下,需要使用
upgradeElement
函数注册新元素。
因此,再次加载material.js脚本不会执行它。但是,您可以通过将它应用于整个加载的标记或特定元素来对upgradeElements
进行一些实验。
相关文章:
- 在chrome.tabs.onCreated之后加载HTML页面
- 使用:new Image()控制加载html.src=html_URL
- AngularJS加载JSON数据,然后从中解析/加载HTML
- javascript弹出窗口没有正确加载html表单
- 什么更好?使用iframe或jQuery之类的东西在外部网站中加载HTML文件
- 使用jquery.load('pageName')方法时,未从应用程序缓存加载Html页
- 使用JS加载HTML元素
- 当select标记触发onChange事件时,从mysql数据库加载html表
- Android Webview没有'有时不会加载HTML
- 使用ajax在html中加载html文件时出现的问题
- 懒惰加载:如何使用jquery创建懒惰加载html页面
- 使用websockets加载.html和.js
- 加载 HTML 模板以通过浏览器与挖空组件一起使用
- 在jquery对话框中加载html页面
- 从Nodejs应用程序加载HTML表
- 在加载html网页时显示JavaScript表
- 当另一个显示时加载HTML而不修改他
- 一次加载HTML对象并多次使用
- 阻止/推迟加载html元素
- 如何在加载HTML时加载js文件