启动后改变MMenu内容

时间:2016-02-24 18:12:17

标签: javascript jquery mmenu

我有一个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;

1 个答案:

答案 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应该可以正常工作。