我有一个MMenu
对象,我为它创建了一个自定义CSS类,它将显示循环红色警报。一切正常,只要在启动li
对象之前MMenu
元素中存在警告HTML。但是,这是有问题的,因为我需要使用ajax实时检查警报,如果存在新警报,我需要在加载后更新MMenu
HTML 。
有什么方法可以在被隐藏后改变MMenu
列表的HTML /内容?我在文档中读到你不能销毁MMenu
实例,所以不幸的是我不能使用新的HTML来销毁和重新创建它。
这是一个小提琴,我的示例CSS显示了我是如何做到这一点的。正如您在小提琴中看到的那样,代码应该在“请求”链接旁边加载相同的红色气泡,数字为“2”,如“消息”警告,但只是更改原始HTML不允许您更改内容显示在屏幕上。
https://jsfiddle.net/2r9tsmyn/9/
JS
var API = $("#dashboard-menu").mmenu({
extensions: ["fullscreen", "pageshadow", "pagedim-black", "iconbar", "theme-dark", "border-full", "effect-menu-slide", "effect-listitems-slide"],
offCanvas: {
position: "left"
},
navbar: {
title: "Dashboard"
}
}).data("mmenu");
$(".dashboard-link").click(function(e) {
e.preventDefault();
API.open();
});
$("#dashboard-menu .mm-title").addClass('ani').css('cursor', 'pointer').click(function() {
API.close();
});
$('li.mm-peition a').append('<div class="mm-alert">2</div>');
CSS
.dashboard-menu ul li a {
position: relative !important;
display: block !important;
}
.mm-alert {
display: inline-block !important;
float: right !important;
position: absolute;
top: 10px;
right: 20px;
width: 24px;
答案 0 :(得分:1)
所以,我看了一下你的小提琴,它看着你的jQuery选择器中有拼写错误,你有
$('li.mm-peition a').append('<div class="mm-alert">2</div>');
请注意请愿书的拼写错误。当我跑你的小提琴时 开始工作了。
也就是说,如果您希望对菜单进行动态更改,请查看动态内容的文档:http://mmenu.frebsite.nl/tutorials/dynamic-content.html
虽然菜单上没有destroy方法,但您可以使用jQuery进行更改,然后调用:
API.initPanels( $("#my-list") );
如果您愿意,可以作为您的基本列表面板。
我遇到的一个问题是,当您添加一个面板时,您需要在列表项中找到您正在添加的附加面板,并将其添加到文档中。
#my-list was an UL, now is a panel
$("#my-list").find( ".mm-listview" ).append( li );
此后调用initalise应该可以正常工作。