Yesterday I encountered one strange behavior on DNN 6.2.9 -   DNN Mega menu dropdown is only visible to work when I login with admin/host account but the registered users doesn't see it. In the first looks, it should be caused by some jQuery plugin not registered correctly. After investigation a while, we found that the jQuery hoverIntent is the problem and we have to manually register it in our skin in default. Some code snippets below looks helpful:

 <script runat="server">
    protected override void OnInit(EventArgs e)
    {
      DotNetNuke.Framework.jQuery.RequestRegistration();
      
      if(!Request.IsAuthenticated)
      {
         var scriptPath = ResolveUrl("~/Resources/Shared/Scripts/jquery/jquery.hoverIntent.min.js");
         //for mega menu we need to register hoverIntent plugin, but avoid duplicate registrations 
         Page.ClientScript.RegisterClientScriptInclude("hoverintent", scriptPath); 
      }
      
      base.OnInit(e);
    }
 </script>

However, there is an elegant workaround to fix this issue – the core jQuery skin object is your better choice. 

<%@ Register TagPrefix="dnn" TagName="JQUERY" Src="~/Admin/Skins/jQuery.ascx" %>
<dnn:JQUERY ID="dnnjQuery" jQueryHoverIntent="true" runat="server" />

The following properties for the skin object can be set to True/False (False by default):

  • DnnjQueryPlugins - If true, the dnn plugins used for panels and tabs will be loaded in addition to jQuery and jQueryUI.
  • jQueryHoverIntent - If true, the HoverIntent script used for tooltips will be loaded in addition to jQuery.
  • jQueryUI - If true, jQueryUI will be loaded in addition to jQuery.

Resources links:

Reusable DotNetNuke jQuery Plugins

http://www.dnnsoftware.com/wiki/Page/jQuery