【问题标题】:MetisMenu not working correctly in IE8/9MetisMenu 在 IE8/9 中无法正常工作
【发布时间】:2014-02-12 09:18:30
【问题描述】:

在此页面上http://jolaga.laohost.net/topsleva 我使用metisMenu 来切换左侧的类别。除了一个小例外,它工作得很好。在 IE8/9 中,如果我单击“+”图标,子菜单会打开,但之后如果我再次单击它不会隐藏。有人可以帮我解决这个问题吗? IE8 中的 bootstrap 也出现了一些问题,但我将其发布在不同的问题中。

【问题讨论】:

    标签: javascript jquery internet-explorer-8 internet-explorer-9


    【解决方案1】:

    为此代码更改 jquery.metisMenu.js,在 IE8/9 中工作!,问题是 collapse 功能比在 IE 中工作不好,我使用 slideUpslideDownslideToggle 的 jQuery 来解决这个问题。

    ;(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);
    

    【讨论】:

      【解决方案2】:

      此问题已在 IE8 和 IE9 的此插件的较新版本中得到解决

      访问https://github.com/onokumus/metisMenu

      我是更改的作者。

      【讨论】:

      • 这似乎仍然是 IE8 中的一个问题。我发现当我点击父li时,我必须点击三下才能看到实际的孩子。只是不确定为什么它不会在第一次点击时展开。任何帮助都会很棒。我其实用的是最新版的metisMenu v1.1.3插件。
      • 即使使用最新版本,我仍然在 IE8 中面临这个问题。有人能解决这个问题吗?
      • 嘿,我可以有一个工作菜单,而无需单击三次。通读此链接:github.com/onokumus/metisMenu/issues/7。基本上它说原因不是 IE8 本身,而是任何不支持转换的浏览器,您需要先初始化插件。
      猜你喜欢
      • 1970-01-01
      • 2013-12-01
      • 2010-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-16
      • 2013-10-09
      相关资源
      最近更新 更多