在这个页面上http://jolaga.laohost.net/topsleva,我使用metisMenu来切换左侧的类别。它可以完美地工作,只有一个小问题。在IE8/9中,如果我点击“+”图标,子菜单会打开,但是再次点击后它不会隐藏。有人可以帮我解决这个问题吗?
同时,在IE8中出现了一些与bootstrap相关的问题,但我会在另一个问题中发布。
更改jquery.metisMenu.js的代码,使其在IE8/9中正常工作!问题在于折叠函数在IE中无法正常工作,我使用jQuery的slideUp、slideDown或slideToggle来解决这个问题。
;(function ($, window, document, undefined) {
var pluginName = "metisMenu",
defaults = {
toggle: true
};
function Plugin(element, options) {
this.element = element;
this.settings = $.extend({}, defaults, options);
this._defaults = defaults;
this._name = pluginName;
this.init();
}
Plugin.prototype = {
init: function () {
var $this = $(this.element),
$toggle = this.settings.toggle;
$this.find('li.active').has('ul').children('ul').addClass('metis-open').css('display', 'block');
$this.find('li').not('.active').has('ul').children('ul').addClass('metis-close').css('display', 'none');
$this.find('li').has('ul').children('a').on('click', function (e) {
e.preventDefault();
$(this).parent('li').toggleClass('active').children('ul').slideToggle().toggleClass('metis-close').toggleClass('metis-open');
if ($toggle) {
$(this).parent('li').siblings().removeClass('active').children('ul.metis-open').slideUp().toggleClass('metis-open');
}
});
}
};
$.fn[ pluginName ] = function (options) {
return this.each(function () {
if (!$.data(this, "plugin_" + pluginName)) {
$.data(this, "plugin_" + pluginName, new Plugin(this, options));
}
});
};
})(jQuery, window, document);