Submenu is overlapping main menu in IE 11

Recently we upgraded from IE 9 to IE 11. The menu bar was disabled so when i opened in enterprise mode the menu bar started working but submenu was overlapping with main menu bar.

Below is the submenu code

menubar.prototype=new menu();
menuitem.prototype.showsubmenu=function(bDelayed)
{
    var sm=this.submenu();
    var pm=this.parentmenu();
    if(sm && !this.disabled)
    {
        pm._abouttoshowsubmenu=true;
        var oThis=this;
        sm._showTimer=window.setTimeout("eventListeners.menuItem.onshowtimer(""+this.id+showtimeout)");
    }
}

menuitem.prototype.tohtml.funcyion()
{
    var cssClass=this.getcssClass();
    var tooltips=this.gettooltips();
    return <tr> ("cssClass!= ""? "cssClass :"") +
            ("tooltips!= ""? "tooltips:"") +
            (!this.styles="" "display:none: "") +
            ">"+
}

Menuitem.prototype.positionSubmenu=function()
{
    var dir=this.submenudirection;//its vertical
    var e1=this._htmlelement;
    var useInsets=this._useInsets;
    var sm=this.submenu;
    var oThis=this;
    if(!sm._iscssfileloaded())
    {
        window.setTimeout("eventListeners.menuItem.onpostionsubmenutimer(""+this.id+showtimeout)");
        return;
    }
    var rect={
        left:posLib.getscreenleft(e1),
        top:posLib.getscreenTop(e1),
        width:e1.offsetwidth,
        height:e1.offsetheight,
    };
    var menurect={
        left:sm.getleft(),
        top:sm.gettop(),
        width:sm.getpreferredwidth(),
        height:sm.getpreferredheight(),
        insetleft:useinset?sm.getinsetleft():0,
        insetright:useinset?sm.insetrightt():0,
        insettop:useinset?sm.getinsettop():0,
        insetbottom:useinset?sm.getinsetbottom():0

        var scrollBefore=sm._scrollingMode;
        sm.show(left,top,width,height);
        if(sm._scrollingMode!=scrollBefore)
        this.positionSubmenu();
    };
}

menubar.prototype.getLeft=function()
{
    return poslib.getscreenleft(this._htmlelement);
}  

menubar.prototype.gettop=function()
{
    return poslib.getscreenleft(this._htmlelement);
} 

menubar.prototype.getinsetLeft=function()
{
    return parseint(this._htmlelement.currentstyle.borderleftwidth);
}

menubar.prototype.getinsettop=function()
{
    return parseint(this._htmlelement.currentstyle.bordertopwidth);
}  

menubar.prototype.getinsetbottom=function()
{
    return parseint(this._htmlelement.currentstyle.borderbottomwidth);
}

menubar.prototype.getinsetright=function()
{
    return parseint(this._htmlelement.currentstyle.borderrightwidth);
}

Kindly reply if anyone knows it or any suggestion?


Source: cross-browser

Leave a Reply