Google Material 设计:mdl-menu 对动态负载没有反应
Google Material Design: mdl-menu does not react on dynamical load
我想在 html 页面中插入一个按钮和一个 mdl-menu 作为工具提示。
这是一个示例 Javascript 代码:
$(function(){
$("#dynamic").html('<button id="share-post-2" class="mdl-button mdl-button--icon mdl-button--colored">\
<i class="material-icons">share</i></button>\
<ul class="mdl-menu mdl-menu--bottom-right mdl-js-menu" for="share-post-2">\
<li class="mdl-menu__item">Facebook</li>\
<li class="mdl-menu__item">Twitter</li>\
<li class="mdl-menu__item">Pinterest</li>\
</ul>');
});
而 html 很简单:
<div id='dynamic'></div>
问题是单击按钮时菜单不会按预期显示。但是,如果我在 html 中对其进行硬编码,它就可以工作。
问题是如何在单击按钮时弹出 mdl 菜单。谢谢!
这是我为测试制作的jsFiddle。
我发现这是 Github
中的一个问题
我用来让它工作的解决方法是使用 componentHandler.upgradeDom();
更新所有 DOM 绑定和事件侦听器。
$(function(){
$("#dynamic").html('<button id="share-post-2" class="mdl-button mdl-button--icon mdl-button--colored">\
<i class="material-icons">share</i></button>\
<ul class="mdl-menu mdl-menu--bottom-right mdl-js-menu" for="share-post-2">\
<li class="mdl-menu__item">Facebook</li>\
<li class="mdl-menu__item">Twitter</li>\
<li class="mdl-menu__item">Pinterest</li>\
</ul>');
// Expand all new MDL elements
componentHandler.upgradeDom();
});
我想在 html 页面中插入一个按钮和一个 mdl-menu 作为工具提示。
这是一个示例 Javascript 代码:
$(function(){
$("#dynamic").html('<button id="share-post-2" class="mdl-button mdl-button--icon mdl-button--colored">\
<i class="material-icons">share</i></button>\
<ul class="mdl-menu mdl-menu--bottom-right mdl-js-menu" for="share-post-2">\
<li class="mdl-menu__item">Facebook</li>\
<li class="mdl-menu__item">Twitter</li>\
<li class="mdl-menu__item">Pinterest</li>\
</ul>');
});
而 html 很简单:
<div id='dynamic'></div>
问题是单击按钮时菜单不会按预期显示。但是,如果我在 html 中对其进行硬编码,它就可以工作。
问题是如何在单击按钮时弹出 mdl 菜单。谢谢!
这是我为测试制作的jsFiddle。
我发现这是 Github
中的一个问题我用来让它工作的解决方法是使用 componentHandler.upgradeDom();
更新所有 DOM 绑定和事件侦听器。
$(function(){
$("#dynamic").html('<button id="share-post-2" class="mdl-button mdl-button--icon mdl-button--colored">\
<i class="material-icons">share</i></button>\
<ul class="mdl-menu mdl-menu--bottom-right mdl-js-menu" for="share-post-2">\
<li class="mdl-menu__item">Facebook</li>\
<li class="mdl-menu__item">Twitter</li>\
<li class="mdl-menu__item">Pinterest</li>\
</ul>');
// Expand all new MDL elements
componentHandler.upgradeDom();
});