jquery mb.menu

mbmenu

This is a powerful jQuery component to build easily a multilevel tree menu or a contextual menu (right click) in an intuitive way!

You can add as many submenus as you want; if your submenu or menu is not declared in the page, the component’ll get it via ajax calling the template page with the id of the menu you need (the value of  “menu” attribute) the ajax page should return a well formatted code as the example below for the menu voices code.

v. 2.8.5

PayPal

What’s new in 2.8.5:

  • Added a new “boxmenu” modality to display any html into the menu.
  • Added “disabled” property to root menu; if setted to true all the voices are disabled.
  • fixed a bug that prevent any submenu to show and hide properly if an “empty” root manu was defined.
  • improved graphic
Comments
208 Responses to “jquery mb.menu”
  1. James Noon says:

    Hi, I like the look of your jquery tree menu and am looking for a new solution for my sites.

    However your demo does not appear to work in IE7 or Firefox, please can you send me the latest working demo link?

    Thanks, james

    • Hi James,
      I don’t know what’s going wrong for you but the component is working fine in IE7/8, FF, Chrome, Safari, Opera … And it has been tested by thousand of users…

      let me know,
      Matteo

      • Rene says:

        It also does not work for me in IE7. I get 2 JS errors:
        Line 10 get(…).adj is null or not an object
        Line 414 ‘undefined’ is null or not an object
        I skip over both of them and end up with a page with a background image and nothing else.

      • Hi Rene,
        Are you sure those errors are from the mb.menu component?
        There’s no .adj() method on my script…

        Bye,
        Matteo

  2. James Noon says:

    Hi Matteo, sorry it was my error, just assumes they were on mouse over, not onclick! Sorted, thanks, James

  3. kambiz says:

    Hi Matteo,

    awesome work!

    Can I have images also in “rootVoice” items?

    kambiz

    • Hi Kambiz,
      you can manage rootvoices as you want as you would normally do.
      Bye
      Matteo

      • jiang dong says:

        怎么学习这些?

  4. Ben Marshall says:

    Hi Matteo.

    Great work on this plug-in. I am trying to use mbMenu for the top nav bar on my site but I am getting errors in IE8. I am using the following JQuery scrips:

    
    

    The menu works fine for me in FF and Chrome, but in IE I keep getting the following Javascript error:

    'events' is null or not an object

    The error is at line 113 in jquery-1.4.2.min.js.

    Another problem I have is that the boxmenu I am using disappears onMouseout from the rootVoice in IE, but stays visible just fine in FF and Chrome. I can provide the CSS and HTML if needed.

    Any help you can provide would be greatly appreciated.

  5. Dian Peshev says:

    Perfect work Matteo. Love it. So easy for manage and with great opportunities.
    Please can help my with this issue:
    When sub menu is opens at the right side and there is no place for it, it’s opens to the left, but when text is longer it extends over root menu. Is there any way to avoid this.

  6. kambiz tavakoli says:

    Hi Matteo,

    there is a ‘*’ selector in the mb_bringToFront,
    since the ‘zIndex’ is almost an issue I replaced the code(see below) and
    it becomes a lot faster in huge content pages.

    mb_bringToFront: function(){
    var zi=10;
    $(‘div’).each(function() {
    if($(this).css(“position”)==”absolute” || $(this).css(“position”)==”fixed” ){
    var cur = parseInt($(this).css(‘zIndex’));
    if(cur > zi){
    zi += cur;
    }
    }
    });

    $(this).css(‘zIndex’,zi);
    }

    bye
    kambiz

    • Hi Kambix,
      your solution is surely faster and lighter, but zindex could be applied even to other HTML elements; the mb_bringtofront function accept also a parameter to define which element should be influenced and this would enlight the recursion in the dom.

      Bye,
      Matteo

  7. kambiz tavakoli says:

    “parseInt” is under FireFox also expensive and not all “div” tags have set “zIndex”,
    so an enhanced fix would be:

    mb_bringToFront: function(){
    var zi=10;
    $(‘div’).each(function() {
    if($(this).css(“position”)==”absolute” || $(this).css(“position”)==”fixed” ){
    var zIndex = $(this).css(‘zIndex’);
    if(zIndex){
    var cur = parseInt(zIndex);
    if(cur > zi){
    zi += cur;
    }
    }
    }
    });

    $(this).css(‘zIndex’,zi);
    }

  8. Cadi says:

    Hi,
    This is a very good Job.

    Maybe the best way is using “List Tag” as Table.
    It’s very easy to make and better for the design.

    Tchouss, from France.

  9. Larry Carrington says:

    Hi Matteo,

    I am trying out mbMenu (2.8.5) to use on a number of web sites that I maintain. It looks quite nice but I have some questions:

    1. Is there a way to trigger a context menu by doing a double click? Since Opera does not allow right click, I would like to have the same menu triggered by a double click so that Opera users can use them.
    2. How can I keep the container from printing when I print the page? Most of our pages have a Print option as one of the context menu selections. There are other items on the page that I hide (via css) when printing. When I use the window.print() from the menu, the context menu shows up on the print.
    3. I am not using the metadata plugin. Everything works except “disable”. How do I let mbMenu know that the menu item is disabled if I am not using the metadata plugin? I have tried specifying “disable”. The menu item shows normal and still functions in Firefox; in IE the text looks disabled but I can still click on it and it functions.
    4. Is there a way to indicate that a particular menu item (or the title) does not have an image? I have been using a completely transparent image so that there is no box in IE.

    Larry Carrington

    • Hi Larry,

      1. You have to change the mbmenu.js at line: 180 adding:
      var evt= $.browser.opera?"dblclick":"contextmenu";
      just before:
      $(cm).bind("contextmenu","mousedown",function(event){
      and replace “contextmenu” with evt:
      $(cm).bind(evt,"mousedown",function(event){

      2. you can set a css for @media print hiding the .menuContainer elements: .menuContainer{display:none}

      3. the attribute you have to define is: isDisable

      4. just remove the img attribute from the a tag.

      Bye,
      Matteo

      • Larry Carrington says:

        Hi Matteo,

        Thank you fro the quick response.

        1. Your suggestion worked great for the right click/double click. I then took it further and bound the event function to both the double click and right click for all browsers–some of our old pages used double click so now users can now do either. I also downloaded the latest Opera (10.60). And Opera now supports right click!

        2. I already had:

        @media print {
        .menuContainer {display: none;}
        }

        The menu does not print when I do a ctrl+P. But when I do a window.print() as the action in the menu, it does print. It seems that while the menu is being displayed, it will print. I was thinking that I could try having the menu item call a function; in the function I could close the menu and then do the print. But I don’t know how to close the menu from another function. I hope that I can solve this because I would really like to switch to mbMenu but the Print menu item is critical to us.

        3. Adding isDisable=1 worked great.

        4. Removing the img from the tag did not work. I still get a box displayed in IE 7 and IE 8. It works fine in other browsers. I will just use my blank image.

        Larry

      • for the #4 if you don’t specify any image it’ll look for a “blank.gif” image in the same folder of other icons.

        Yes, you can call a function that closes the menu and than print your page:

        function closeAndPrint(){
        $.fn.removeMbMenu($.mbMenu.options.actualMenuOpener);
        window.print();
        }

        Bye,
        Matteo

  10. Alex says:

    Excellent!

  11. Marcos says:

    Hi Matteo!!!

    Is it possible 2 or more columns options?

    Depending on the quantity of options (20 or more), the last one’s goes out of screen. If there was a parameter for the maximum lines, they could be placed in columns.

    After some tests, I could see the menu position automatically changes, moving it up to try to fit in the screen. It is a great enhancement.

    Also, I’ve tried smaller font sizes. But it was not enough.

    Thanks
    Marcos

    • Marcos says:

      I tried to hack Matteo’s code, but I don’t know javascript that much.

      Could you anybody help?

  12. Ragnus says:

    Hi Matteo,

    thank you for your wonderful menu.

    I got two topics i want to ask for:
    a)
    I am using your menu for a list of up to 50 elements. Firefox, Chrome and other browsers can handle this in less than a second except for IE 7 (needs up to 10 seconds to parse). Each menu has only one menu level (no sub menus) and less than 10 entries.
    Are there any chances that the IE can handle your menu structure in a time less than a second?

    b)
    I load a menu via your Ajax functionality which works fine. The application needs to do some things before sending the generated menu so it takes around 5 seconds for the asynchronous server round trip. Is there a way to show a “please wait” div or something else while waiting for the ajax response in addition to block the mouse pointer click ability? I tried to register call back functions in the jquery-ajax system but they didn’t fire when your menu makes the ajax call.

    Thanx for your help

    • Hi Ragnus,
      A) IE has several problems on rendering pages and I don’t have a solution yet for your problem… I can suggest you to orgaize your menus to have less voices per menu…
      B) I’ve never had such problems on the uses I have. It loads menus in some milliseconds, not seconds… However a generic .ajaxStart() and .ajaxComplete() should work for you: http://api.jquery.com/category/ajax/

      Bye,
      Matteo

      • Ragnus says:

        Hi Matteo,

        thanks for your hints.

        Can you announce a date when your menu plugin will be avaiable for jquery 1.4.x? Because I use the jquery modal dialog I have to use that jquery version. But with jquery 1.4.x only with firefox the show animations of any pre-ajax send event will be executed. IE and Chrome never show the dialog pop up.

      • Hi Ragnus,
        the black dialog pop up is used just as debug; not thought for production… anyway it works fine on FF, Safari, Chrome and Opera also with jQuery 1.4.x for me…
        which version of the mb.menu are you using?

        You can try this prerelease: https://github.com/pupunzi/jquery.mb.menu/tree/2.8.5rc9 but I don’t think this solves your problem.

        Bye,
        Matteo

  13. peyman says:

    Hello.
    It supports me Rtl?

    • No, I’m sorry…

  14. Hi Matteo,

    I have run into a problem using mbMenu. When I use mbMenu (context menu) on a page, I can no longer select text, clear contents of a text box, etc. with the mouse. I took out my changes for double click (I just downloaded the original again) to see if that was the problem. It was not. Have you seen this problem before? Do you have any idea what might be causing this?

    I am using jQuery 1.4.2 (I also tried it with 1.3.2) and mbMenu 2.8.5.

    My menus typically are defined like this:

    $(document).buildContextualMenu({adjustLeft: 0,
    adjustTop: 0,
    closeOnMouseOut: true,
    fadeInTime: 100,
    fadeOutTime: 100,
    hasImages: true,
    hoverIntent: 0,
    iconPath: ‘../images/’,
    menuSelector: ‘.ContextMenu’,
    menuWidth: 100,
    onContextualMenu: function (o, e) {},
    opacity: .85,
    overflow: 2,
    shadow: true,
    submenuHoverIntent: 0,
    template: ‘../common/PageMenu.htm’});

    Larry Carrington

    • Hi Larry,
      never had this problem before…
      Do you have a public URL where to see it?

      Bye,
      Matteo

      • Hi Matteo,

        Yes, go to http://www.dchoa.org. If you right click, you will get the page menu. You cannot select text on the page with the mouse.

        Larry

      • Hi Larry,
        this happens because mb.menu component set to unselectable the element where the contextualmenu is applied to prevent selections when the menu is invoked.
        In the truth I did never tried it on the body of a page… I’ll see to solve this issue for next release.
        for the moment you can comment line 177 of the script: $(this).css({"-webkit-user-select":"none","-moz-user-select":"none"}); and see if it works.

        Bye,
        Matteo

  15. Mike says:

    Matteo,

    Love your stuff. We had an exhaustive search for a good jQuery menu, and we’ve settled on yours. I have 2 issues I’m working on, and I was hoping you could provide some guidance.

    1. We have the menu set to open onclick. Currently, it opens pretty slowly, even with not many items in the menu. With 5-6 items in the menu, it takes a solid second to open the menu, maybe even 2 seconds. I’m concerned when we have many items in the menu (we will in some cases) it will take “too long” to open. I have the delay set to 0 and the hoverIntent turned off. Is it loading the menu content dynamically? If so, is there a way we can turn that off? We build all the menus dynamically on the server-side, so we don’t need it to be dynamic, we just want it to be fast.

    2. My second issue is that I want to have multiple “different” instances of the menu on one page. We are using it as our main navigation menu at the top, which is styled in one way. I also want to use it in the body of the page as user-select dropdown, but styled differently. This mostly works except for the “rootVoice.selected” class – this seems to control the “hover” and “on” attributes of the menu. Is there an easy way to have 2 different instances with 2 different .rootVoice.selected classes?

    Let me know if you need me to explain it further.

    -Mike

    • Hi Mike,
      1. usually that happens on IE if you have a complex page (many tables and so on). I’m working on a new lighter version of the menu that actually build tables to construct the menu voices.
      2. Actually there’s no way to have different styles for different instances of the menu in the page; I’ll see to implement it for next release.

      Bye,
      Matteo

      • Mike says:

        Matteo,

        Thanks. Also:

        1. I noticed this in Firefox, not IE. The page is somewhat complex but it is almost entirely DIVs, not not tables. Since we’re in the early stages of development on this application, I expect them to get much more complex.

        2. Hmmm, this is going to be troublesome. I can actually get around almost everything else using CSS, but unfortunately, because of the way you use that rootVoice.selected class, I can’t create different “on” or “hover” states for the different instances of the menu on our page. I guess I’ll see if I can come up with a temporary “hack” fix for it.

        Thanks,
        Mike

      • Mike,
        1. Does this happens also in the demo file provided in the package?
        We use the menu in several heavy apps without your problems… do you have a public URl where to test it?

        2. for the root voices you can work around by adding a custom class to the voice container and manage the apparence via CSS:
        actually in the default css:
        .rootVoices td.rootVoice.selected{...}
        you could have:
        .rootVoices td.rootVoice.custom.selected{...}

        and on the TAG: class="rootVoice custom {menu: 'box_menu'}"

        Bye,
        Matteo

      • Mike says:

        Matteo,

        This is in development, so I don’t have a public URL for you to see, nor will we any time soon. I’ll check the demo file that came with it and see if it does the same thing.

        As for the CSS, this shows you learning something new everyday – I knew I could do this: class=”rootVoice custom {menu: ‘box_menu’}” but I did not know I could address it like this: .rootVoices td.rootVoice.custom.selected{…}. I think that will actually solve my issue – THANKS!

        Mike

  16. Bagno Davide says:

    Hi ,
    I’ve been trying the mbMenu v2.8.5 Demo at http://pupunzi.com/#mb.components/mb._menu/menu.html
    using Google Chrome 5.0.375.99 (on linux), but it doesn’t seem to work; actually, when I click on “Demo”, it doesn’t show nothing but the background image.
    I also tried to use it in my local Apache web server ; it works fine with IE, Firefox, Opera, but it does not for Chrome.

    • Hi,
      I’ve not tested it on linux and I don’t know if Crome works the same as on the other OS, so I can’t really help you.
      Chrome does’t allow ajax calls from a local file but it should work fine on a web server…
      Let me know if you find a solution,
      Bye,
      Matteo

  17. Great job. But I have a question.

    I’m using the AJAX template. The menu content changes based on the current server-side state of the item being clicked. How can I delete the menu upon close so that a fresh instance will be pulled from the server on the next menu opening?

    Thanks

    • Hi Bill,
      If you need just a specific menu to be reloaded than you have to remove it from the dom when you need to evaluate it again serverside; if you whant ajax menus to be always recalled from the server than you can add a general property as “ajaxAlwaysReload” and change the code from line 226:

      if (!$("#"+m).html() || op.ajaxAlwaysReload){
      $("#"+m).remove();
      $.ajax({
      type: "POST",
      url: op.options.template,
      cache: false,
      async: false,
      data:"menuId="+m+(op.options.additionalData!=""?"&"+op.options.additionalData:""),
      success: function(html){
      $("body").append(html);
      $("#"+m).hide();
      }
      });
      }

      This will alwais recall the menu from the server.

      Bye,
      matteo

  18. Hawk says:

    Hello!

    First, Thanks for this great Script!
    I have a Login Panel in my mb_menu, in my normal panel when i double click the input username text i get a history of my usernames, but in mb_menu i get nothing, when i double click nothing happens.

    Could you please tell me how can i fix this ?

  19. Jason Janson says:

    Hey there!

    Has anyone had any success adding mbTabset (Or JqueryUI tabs) to the mbMenu?

    Thanks!

    • Hi Jason,
      Do you mean have tabset inside the menu?
      The mb.menu is thought to be a menu, not a container for other components, I’m sorry but you can’t.
      Bye,
      Matteo

  20. mark says:

    Hey nice menu,

    could you tell me how you call up the ajax menu? i have searched in the code but i did not find it. Also in my demo it does not work.
    Could you give me an advise?

    Thanks

    • Hi Mark,
      the mb.menu search its content in the DOM of the page, however, if the corresponding ID is not on the page, the component makes an ajax call to the URL passed as “template” in the initilization function passing the ID of the menu as “menuId” parameter in the querystring. This let you define a dinamic page (php, jsp, asp, etc.) that builds the voices on demand and returns them as ajax content. If you see at my demo files you can find the “menuVoices.html” one where you can see the HTML structure the dynamic page should return.

      If you are running the demo locally it doesn’t work on Chrome; if you are running it on your server but it doesn’t work than it means your server doesn’t allow POST requests and you have to change the ajax call methods at line 268 of the mbMenu.js file from POST to GET.

      Bye,
      Matteo

  21. Vasily says:

    hey nice component ive used it in a page at work but doesnt display well in IE the error is offset.top() is null, in FF it displas well but launches a js exeption
    Error: $(“#” + n.options.containment).offset() is null
    Archivo de origen: http://localhost/js/mbMenu.min.js
    ive fixed the problem locating the menu header in a div tag but it displays from down to top beacuse the div is to small and i cant make it bigger. i ve been a week on this mater if you cant leave me a reply will be usefull
    thanks in advance
    Vasily

    • Hi Vasily,
      which version of mbMenu are you using?
      Actually I don’t include the minified file anymore… so it should be an old version of mb.menu, try download the latest at: https://github.com/downloads/pupunzi/jquery.mb.menu/jquery.mb.menu.2.8.5.zip.

      Bye,
      matteo

      • Ray says:

        Hi Matteo,
        I am using the latest code 2.8.5 and when I run my menu in your demo page it works fine, but when I run it in my local server I get the $(“#” + op.options.containment).offset() is null problem
        $(“#” + op.options.containment).offset() is null
        mbMenu.js Line 489

        Any ideas what I could be doing wrong

      • how did you initialize the menu?
        this error could happen if you specify a containment that doesn’t exist in your page DOM.
        By default the “containment property is set to “window”, but if you want your menu working inside any element of your page than you can change it passing the ID of the element. In your case this property is set to an ID of an unexisting element.

        Bye,
        Matteo

      • Rafael Mejía says:

        Hi Vasily,

        Solution:

        var wh = (op.options.containment == “window”) ? $(window).height() : document.body.scrollTop + document.body.clientHeight;
        var ww = (op.options.containment == “window”) ? $(window).width() : document.body.scrollLeft + document.body.clientWidth;

        Greetings

  22. Tae says:

    would it be possible to have the first dropdown level horizontal but the second level be vertical?

    example here: http://www.taepark.com/images/menu.gif

    • Hi Tae,
      You can’t have this behavior with the mb.menu component, but you can create the top horizontal one by yourself and attach the menu to the sublevel voices.
      Bye,
      Matteo

  23. Tássio says:

    Hi, I was wondering if there is a way to use , , instead of in the constructor for the HTML header.
    thansk.

    Ps.:I’m from Brazil and my english is not very good, so I apologize for any mistake

  24. Camilo says:

    Mateo greetings. how I can enable or disable the options in a menu with jquery code to be dynamic.
    need to do this
    Paciente
    but with JQUERY

    sorry English is not very well

  25. JC says:

    I like everything you have done; but this page housing everything is soooo slow – infact, Safari just crashed. Firefox holds up, but went sluggish. I would highly recommend you look at improving performance of your pages here.

  26. Jarkko.H. says:

    How about having an mouseover() –activated #info-div inside the menu, that displays info of the menu item under mouse cursor? I can add ID to menuitem but menu does not “refresh” until it is closed and then opened again. Only after re-opening the contents of info-div is changed. How do I “refresh” the menu after mouseover()? To test u can use mouseenter(), close and open the menu again to see changes…
    …(‘#info-div’).text( “mouse is over menuitem now! ” );

    • Hi Jarkko,
      The displayed menu is just a clone of the one defined in the DOM of your page.
      If you need to refer to an element inside the menu you should add the “mb_” prefix to the menu ID you are referring to; otherwise you’ll change the content of the hidden menu.

      For example: if you have a menu with ID “menu_12″ containing your div with ID “info-div”, you can change the content of “info-div” of the displaied menu in that way: $(“#mb_menu_12 #info-div”).text(“… your text …”);

      Bye,
      Matteo

  27. Jarkko.H. says:

    Thank you for quick answer. I can correctly point to element on the menu, but menu is not “refreshed” on mouse action, page content on the other hand is changed on action. See this video that shows my problem.. http://www.jarkonkotisivu.org/temp/mb_menu1.flv

    • As I can see from the video you are pointing to the DOM element instead of the shown menu itself;
      instead of
      $("#menu_3 #slide1").text("...My text...");
      you should write:
      $("#mb_menu_3 #slide1").text("...My text...");
      This way you refer to the cloned element that is shown in the page.

      Bye,
      Matteo

  28. jhautakorpi says:

    Oh, right! It works smoothly, thank you for this awesome menu!

  29. maofree says:

    Ciao Matteo
    Ti volevo avvisare che sto per fare un nuovo modulo per prestashop cms per integrarci il tuo menu e sarei ben felice se in caso di problemi (ma non credo che ce ne saranno) ti possa contattare anche con la tua email (per fare prima). Abito anche vicino a Firenze.
    (ovviamente farò anche un pò di pubblicità nel forum) (forse se avrò un pò di tempo libero lo farò anche per altri cms)

    Ciaooo

    • Ciao,
      non conosco Prestashop, comunque mi fa molto piacere che tu abbia implementato il mio componente. Nel caso tu abbia problemi scrivimi pure.
      Ciao,
      Matteo

  30. Garrett says:

    Hi Matteo,

    Great component – thanks for the effort.

    Just a quick question. Is there a way to refresh the menu dynamically once a user has made a selection. I.e. retrieve additional menu items when a user is logged on?

    Thanks

  31. Michael Li says:

    I just sent you an email about the question below. I didn’t realize there is a comment at the bottom of the page. So I’ll just re-post the question.

    Good day Matteo, thanks for such an excellent menu. I’ve been playing with it for the last few days. I have gone through all files and they make sense to me. But I do have a question about how to call AJAX from submenu.

    I know how to call Ajax from the top menu. If the menu id doesn’t exist on the page, the script will use Ajax to fetch menu data from the server by template and additionalData parameter. The top menu code is shown below.

    ajax menu

    $(function(){
    $(“.vertMenu”).buildMenu(
    {
    template: “http://www.myserver.com/templates”,
    additionalData: “templateID=1″
    });
    })

    ———————————————————————————–

    Ajax_menu_12.4

    The code above is the submenu returned by the server through AJAX. My question
    is here. On this submenu, the submenu id is “menu_12.4″ which doesn’t exist on
    the page. So it should go to server to get the sub-submenu. But how can I pass
    the menuID (“menu_12.4″) to the server? As far as I understand, it still uses
    the same templates http://www.myserver.com/templates?templateID=1 to fetch the
    sub-submenu.

    Any help would be greatly appreciated,

    Michael

  32. Roberto says:

    Hi Matteo,

    There is any way to make the menu html 4.01 strict compatible?

    Thank you.

  33. Pablo says:

    Hi,

    How can I make a Home button at the root level?

    Thanks!

    • Hi Pablo,
      If you take a look at the demo.html code you can see that the last voice doesn’t open a submenu but fires directly an action; using the same sintax you can point to a different URL.
      Here is the code:

      The last td has the attribute menu set as empty and an onclick event that points to a different URL

      
                    <table class="rootVoices" cellspacing='0' cellpadding='0' border='0'><tr>
                      <td class="rootVoice {menu: 'box_menu'}">box menu</td>
                      <td class="rootVoice {menu: 'menu_12'}">ajax menu</td>
                      <td class="rootVoice {menu: 'menu_2'}">menu 1</td>
                      <td class="rootVoice {menu: 'menu_2', disabled:true}">menu disabled</td>
                      <td class="rootVoice {menu: 'menu_3'}">menu 2</td>
                      <td class="rootVoice {menu: 'empty'}" onclick="self.location.href='http://pupunzi.com'">empty menu</td>
                    </tr></table>
      

      Hope this can help you,
      Bye,
      Matteo

  34. Nadav says:

    Dear Matteo,

    First – your work is amazing. It seems like you have spent a lot of time and thought on your plugins! Waaoo!! & Thanks for sharing this code with us!

    Second, I have a question: I want to use your menu in one of my project, but before that I want to make sure that it support showing a drop down menu that will open to the left. In fact, as part of the design I need:
    * One menu that opens down and its sub menus open to the left.
    * On the same control, one menu that opens down and its sub menus open to the *** right ***.

    Is that doable?

    Thanks :)
    Nadav

  35. John says:

    Hey Matteo. Thank you for doing such an amazing work. I have a question. If I want to use mbmenu in my website, and to publish it, does “mb.ideas.repository” (a link) must be on the top of the page or I could delete it?
    If it must to be there, does it have to be on the top, and does it have to be on each page?
    Thank you. The job you do is incredible.

    • Hi John,
      Of course not :-)
      You can remove the top link you find in the demo. Just leave the copyright into the javascript file, that’s all.
      Bye,
      Matteo

      • John says:

        Thank you so much.Wish You the best luck on the following projects. Amazing job.

        Regards,
        John

  36. SteveC says:

    Fantastic menu! I have a question though… I would like to have the very first level/root/parent for the VERTICLE menus that have sub categories to have the image arrow. For example:

    ———————————————-
    First Level/Root/Parent Menu 1 > | (has subcats)
    First Level/Root/Parent Menu 1 | (does NOT have subcats)
    First Level/Root/Parent Menu 1 > | (has subcats)
    ———————————————-

    • SteveC says:

      No idea why my date says 4/6/2011 as I posted this on 6/4/2011. hmm….

      • This is the italian date format :-)

    • Hi Steve,
      You should do it via CSS adding a specific class to the root menu that have submenu where you can specify a background arrow image.
      Bye,
      Matteo

  37. SteveC says:

    If you move slowly across from one menu to another (the VERTICLE) menus, it closes itself and it should not.

    • SteveC says:

      Also… are the submenus containers not liquid? Meaning they would take the length of the longest submenu? Right now, I have some long submenu names and they are longer than the menu box. They dynamically change so this may or may not be the longest one we have so we need the menu container to be liquid.

    • SteveC says:

      It appears to be doing it (closing itself when I am hovering over a menu) more and more. It’s random but it’s frequent. You can see it here:

      http://www.collectionstation.com/categories/Toys/2-Action-Figures/view:detail

      (the left-side verticle menu)

      • Hi,
        Try to set the hoverintent property to 0; this should be the cause of your problem.
        I’ll take a look at the code to see how to solve it.
        Bye,
        Matteo

      • SteveC says:

        any update to the liquid issue above?

  38. Satria Adhi says:

    matursuwon,mister
    tank’s you

  39. John says:

    this is so cool! thx very much!!

  40. Rolando R says:

    Hi, at this moment im using some other plugins that i changed code with XML, it gave me a flash file at the end, which i just posted and worked great, but at the moment of going to an ipad it just wont work, a friend told me that i needed to start using javascript plugins… will this menu work as javascript or flash?.. what do you recommend?

    • Hi Rolando,
      This component is a javascript component; try it to discover if it is what you need.
      Bye,
      Matteo

  41. avitol says:

    when you write “voice”….do you mean “choice”???

  42. Pankaj says:

    Hi,

    great component!

    I wanted to prevent the closing of the menu on external click. How can it be done?

  43. ANZA says:

    Nice .. :)

  44. koko says:

    Now, my menu in footer so i want to show on top. can possible?? if can, how can i do it?

    • Hi koko,
      This menu has no option for bottom to top display; it checks automatically if the opening menu fits the actual screen size and it tries to get the right position if not. This, anyway is different from what you are asking for and actually there’s not a real solution.
      Bye,
      matteo

  45. ChRIs says:

    Izzit the menu also available for ASP.Net MVC 3 framework???

    • Hi Chris,
      This is a javascript plugin you can implement on any framework; i don’t know if there’s any ASP.net implementation yet.
      Bye,
      matteo

  46. hanJQ says:

    Wow;;;;

    OH….

  47. Larry Carrington says:

    Hi Mateo,

    I contacted you on 02/09/2010 about an issue with not being able to select text when the context menu was added to the entire document. On 08/09/201 you indicated that this was due to making the element unselectable. You said that you would look at changing this in a future release. Has this been addressed? I would really like to switch to your menu system but have to be able to select text, clear text in text boxes, etc.

    Thank you.

    Larry Carrington

  48. bruno says:

    ciao matteo complimenti per il tuo lavoro sono davero fantastici, ho un problemuccio sto cercado di inserie il menu in un mio progetto asp.net mvc3:
    1) il menu ajax non me lo carica;
    2) quando vado su un menu e sia pre il sotto menu si vedono delle linee bianche tra una voce ed un altra e non si vedono le freccie per accedere ai sotto menu

    • Ciao Bruno,

      Se le chiamate ajax non ti funzionano potrebbe essere o che il tuo webserver non accetti richieste POST oppure che il path del file che stai chiamando non è corretto; se hai una console guarda che tipo di errore stà dando.
      Comunque, se il problema è il POST devi semplicemente modificare le chiamate ajax nel javascript da POST a GET.
      Per il problema di visualizzazione, anche questo sembrerebbe un problema di path delle immagini…

      Ciao,
      Matteo

  49. Andy says:

    Very great menu! Thank you!

  50. Francisco says:

    Hi Matteo.

    I’m a portuguese student doing an internship in spain and the enterprise asked me to make a menu. So a friend of mine recommend me your awesome jquery menu.

    I’ve already done it, but I have two bugs (or its just my fault that I don’t know how to fix it):

    - The menu opens always to the right side. Even if it doesn’t have space on the screen. Is there any way that if there’s no space on the screen to open the menu to the right, it opens to the left?

    - The width of the “cells” is static. Is there any possibility of make it adjust automaticly to the content?

    I just need this to finish my menu and I’m going mad trying without success… Could you tell me how to fix this?

    Many thanks and best regards,
    Fancisco

    PS: I’m using the last v. 2.8.5

    • Hi Francisco,
      Both those behaviours should already be inplemented in the current menu release.
      Is there a public page I can access to see what’s going on?
      What browser are using to test the component?

      Bye,
      Matteo

      • Francisco says:

        Hi Matteo,

        I’de to fly back home due to some problems.
        I’ll try find some place were I could host it and send you the link.

        I’m testing in Firefox 8.0 and Chrome 15.0.x.

        Another thing that I need, is: when I have just for example 3 or 4 menus, instead of it use all the area, just use for half or less of the menu lenght (to avoid the dispersion with so few options).

        Thank you!!
        Francisco

      • Francisco says:

        Hi Matteo,

        Ok, so I’ve put it here:
        http://si.uma.pt/capelo/genera_menu.php?tipo=iconos&padre=0

        The things that I need to change/correct is:
        - Menu opens always to the right side, even if it doesn’t fit;
        - When I put a low value on the cells it adjust automaticly the width. But the text overlaps the “arrow”;
        - When I have few “main menus” (like 2 ~ 4) is possible to do not use all the horizontal space? (cus it distribute automatically, using all the space). When it has few options, I just wanted it near each other, on the right. Is it possible to do?

        Thanks for all the support!
        Francisco

      • Hi Francisco,

        - Menu opens always to the right side, even if it doesn’t fit;
        If you test the demo files this is the behaviour that the menu has; probably you should see how you are writing your HTML page… It doesn’t have HTML, HEAD and BODY tags…

        - When I put a low value on the cells it adjust automaticly the width. But the text overlaps the “arrow”;
        you can adjust this via CSS changing the padding of the single menu voices: .menuContainer td.voice

        - When I have few “main menus” (like 2 ~ 4) is possible to do not use all the horizontal space? (cus it distribute automatically, using all the space). When it has few options, I just wanted it near each other, on the right. Is it possible to do?
        you can adjust this via CSS too; just change the width of the table that contains the root voices

        Hope this can help you,
        Bye,
        matteo

      • Francisco says:

        Thanks Matteo!

        About the tags, do you really think that it could affect the behavior?? This morning I’ll try it all.

        Again, many thanks by the support!!

      • Francisco says:

        Hi Matteo,

        With your help, I was able to do all the things, less the menu opening to the left side. I’ve put the tags, and try to analyze your demo, but I just don’t know why, it always open to the right side…

        I’ve also some strange bug (just noticeable when I’ve the Firebug on):
        $(“#” + op.options.containment).offset() is null
        mbMenu.js (line 489).

        But the menu works without any problem.

        Could you please point me something else that could be blocking the correct menu opening side?

        Thank you so much,
        Francisco

      • Hi,
        The error you are getting is the cause of the always right side menu.
        What do you set as containment in the initialize function?

        Bye,
        matteo

      • Francisco says:

        Hi Matteo,

        I’m not sure of what you’ve asked, so I’ve put the file here:
        http://dl.dropbox.com/u/2770846/genera_menu.php

        I’m just going mad with this thing of the opening to the right. I’m really very pleased with your help!

        Thanks again!!
        Francisco

      • Hi Francisco,
        By default the containment of the menu should be “window”; in your initialization function you set a DOM element with ID “wrapper” as containment of the menu(containment:"wrapper",), but this element doesn’t exist on your page (probably you cut & paste the code from the demo1.html file where the menu is constrained inside a wrapper).
        To solve this just remove the containment:”wrapper” parameter from the $(".myMenu").buildMenu({...}) call in your page and everything should work.

        Bye,
        Matteo

      • Francisco says:

        PERFECT!!!
        IT WORKED!!! :D

        Thank you Matteo. I’ve never expecet so much support! Neither so quickly.
        I’m really happy with the result (I’ve just to change the colors :P ), and my boss is also very pleased.

        Again, thank you by the aewsome library and by the amazing support!

        Best,
        Francisco

  51. flav says:

    Hi,
    I’d like to now if it is possible to configure the menu so that the header menu is also a link meanwhile conserving the dorpdown effect once it’s been clicked …
    I try to be a bit cleare … I have Menu a / Menu B / Menu C and Sub menus …
    When you click Menu A it activates a dropdown … I would also like to have this Menu A linking to somewhere as well as activating the dropdown….but if I put a link to it, the dropdown does not activate anymore … many thanks for any guidance

    • Hi,
      But if you have a link on the top voice that point to another page that means that once you click that link you’ll change the page… and the menu is on the page you are leaving… How can it works that way?
      Sorry but maybe I missed something.
      Bye,
      Matteo

  52. Nicholas says:

    Has anybody written a PHP wrapper/library around this?

  53. KLEELOF says:

    Hello,

    Great component. I was able to get it installed, designed and using dynamic menu items in less than an hour.

    I do have one question; On a menu item without a drop down, how do you make it link to another page?

    take care,
    lee

  54. Glen Stanbridge says:

    Hey Matteo,

    Really nice menu system – have used in a couple of projects and works really well.

    My question is there any way to trigger a menu voice from outside the menu….eg. I have an advert on my page outside the menu, but when it is clicked the boxMenu voice in the menu is triggered….

    Thanks,

    Glen

    • Hi Glen,
      If the menu is closed the element does not exist in the page; so you can’t trigger any event.
      Bye,
      Matteo

  55. Senthil says:

    Hi Matteo, can you please advise how to open a context menu when user right-clicks anywhere in the document? It works great when the following class is added to an element.
    class=”cmVoice {cMenu:’conext_menu_1′}”
    However, I have to open the context menu on right click on the document.
    Thanks,
    Senthil.

  56. Chris says:

    Hi Matteo,
    very good job, thanks a lot.
    I’ve just found this nice tool and played arround with the demopage – version 2.8.5 with FF 3.6 and IE7.

    But I’ve just found a issue – for sure it’s a smaller one:
    Select “menu 1″ -> “menu_2.4″ -> “sub_menu_2.1″
    Than move the mouse upwards leaving the range of the menus and go left to the “menu_2.2″ – the first entry of “menu 1″. If this happens quick enough (say half a second), both items “menu_2.2″ and “menu_2.4″ are selected.

    Chris

  57. Chris says:

    Matteo,
    I’ve just found the reason …
    as described above, this happens if you leave the sub menu container moving the mouse upwards and go left to the parent container, but not to a menu item but to the menu title (in this case “choose one of these links”).
    Then if you go down to “menu_2.2″, both items are selected.
    It’s not a matter of quickness and for me it’s not essential because I don’t need menu titles or menu text.

    Thanks
    Chris

  58. Thnx Chris,
    I tried to replicate this issue with no success…
    Anyway I’ll take a look at this behaviour.
    Bye,
    Matteo

Trackbacks
Check out what others are saying...
  1. [...] go to the component page for the latest release [...]

  2. [...] | mbMenu [...]

  3. [...] get it on the component page! Possibly related posts: (automatically generated)jQuery (mb)Menu 2.7 (New!)ASP.NET 2.0 Menu – MenuItemClick not posting back/firing eventBuild a Cross-browser Dropdown Navigation Menu [...]

  4. [...] jquery mb.menu [...]

  5. [...] jquery mb.menu [...]

  6. [...] jquery mb.menu [...]

  7. [...] jquery mb.menu [...]

  8. [...] 插件地址:http://pupunzi.open-lab.com/mb-jquery-components/mb-_menu/ [...]

  9. [...] jquery mb.menu [...]

  10. [...] jquery mb.menu [...]

  11. [...] 就是最好的选项,以下插件是09年最好的 jQuery 导航插件。jquery mb.menu Horizontal Scroll Menu with jQuery AutoSprites 表单和表格 在 Web [...]

  12. [...] 就是最好的选项,以下插件是09年最好的 jQuery 导航插件。 jquery mb.menu Horizontal Scroll Menu with jQuery AutoSprites 表单和表格 在 Web [...]

  13. [...] 就是最好的选项,以下插件是09年最好的 jQuery 导航插件。 jquery mb.menu Horizontal Scroll Menu with jQuery AutoSprites 表单和表格 在 Web [...]

  14. [...] jquery mb.menu [...]

  15. [...] jquery mb.menu [...]

  16. [...] 就是最好的选项,以下插件是09年最好的 jQuery 导航插件。 jquery mb.menu Horizontal Scroll Menu with jQuery AutoSprites 表单和表格 在 Web [...]

  17. [...] 就是最好的选项,以下插件是09年最好的 jQuery 导航插件。 jquery mb.menu Horizontal Scroll Menu with jQuery AutoSprites 表单和表格 在 Web [...]

  18. [...] 就是最好的选项,以下插件是09年最好的 jQuery 导航插件。 jquery mb.menu Horizontal Scroll Menu with jQuery AutoSprites 表单和表格 在 Web [...]

  19. [...] 就是最好的选项,以下插件是09年最好的 jQuery 导航插件。 jquery mb.menu Horizontal Scroll Menu with jQuery AutoSprites 表单和表格 在 Web [...]

  20. [...] jquery mb.menu [...]

  21. [...] jquery mb.menu [...]

  22. [...] 就是最好的选项,以下插件是09年最好的 jQuery 导航插件。 jquery mb.menu Horizontal Scroll Menu with jQuery AutoSprites 表单和表格 在 Web [...]

  23. [...] need to create a more engaging nav, jQuery is your best bet. Here are a few of the best from ‘09.jquery mb.menuHorizontal Scroll Menu with jQuery This isn’t a plugin, but I had to include it since it is such a [...]

  24. [...] 就是最好的选项,以下插件是09年最好的 jQuery 导航插件。 jquery mb.menu Horizontal Scroll Menu with jQuery AutoSprites 表单和表格 在 Web [...]

  25. [...] jquery mb.menu [...]

  26. [...] jquery mb.menu [...]

  27. [...] jquery mb.menu [...]

  28. [...] need to create a more engaging nav, jQuery is your best bet. Here are a few of the best from ‘09.jquery mb.menuHorizontal Scroll Menu with jQuery This isn’t a plugin, but I had to include it since it is such a [...]

  29. [...] jquery mb.menu [...]

  30. [...] jquery mb.menu [...]

  31. [...] jquery mb.menu [...]

  32. [...] 就是最好的选项,以下插件是09年最好的 jQuery 导航插件。 jquery mb.menu Horizontal Scroll Menu with jQuery AutoSprites 表单和表格 在 Web [...]

  33. [...] 就是最好的选项,以下插件是09年最好的 jQuery 导航插件。jquery mb.menuHorizontal Scroll Menu with jQueryAutoSprites表单和表格在 Web [...]

  34. [...] jquery mb.menu [...]

  35. [...] jquery mb.menu [...]

  36. [...] jquery mb.menu [...]

  37. [...] jquery mb.menu [...]

  38. [...] jquery mb.menu [...]

  39. [...] jquery mb.menu [...]

  40. Social comments and analytics for this post…

    This post was mentioned on Twitter by pupunzi: #jquery #mbmenu: published jquery.mb.menu 2.7.2 release with some bugfix: http://bit.ly/1zzNE2...

  41. [...] eklentisiCoda-Slider 2.0Image GalleriesGalleriajQuery Panel GalleryslideViewerSupersizedNavigationjquery mb.menuHorizontal Scroll Menu with jQuery AutoSpritesForms and TablesPassword StrengthPassword Strength [...]

  42. [...] jquery mb.menu [...]

  43. [...] jquery mb.menu is another very powerful component for easy creation of jQuery multilevel tree menu or context menu (right mouse button). [...]

  44. [...] jquery mb.menu is an additional really absolute member for easy origination of jQuery multilevel tree menu or context menu (right rodent button). [...]

  45. [...] jquery mb.menu [...]

  46. [...] jquery mb.menu [...]

  47. [...] jquery mb.menu is another very powerful component for easy creation of jQuery multilevel tree menu or context menu (right mouse button). [...]

  48. [...] jquery mb.menu [...]

  49. [...] jquery mb.menu is another very powerful component for easy creation of jQuery multilevel tree menu or context menu (right mouse button). [...]

  50. [...] jquery mb.menu is another very powerful component for easy creation of jQuery multilevel tree menu or context menu (right mouse button). [...]

  51. [...] jquery mb.menu is another very powerful component for easy creation of jQuery multilevel tree menu or context menu (right mouse button). [...]

  52. [...] 就是最好的选项,以下插件是09年最好的 jQuery 导航插件。 jquery mb.menu Horizontal Scroll Menu with jQuery AutoSprites 表单和表格 在 Web [...]

  53. [...] 就是最好的选项,以下插件是09年最好的 jQuery 导航插件。 jquery mb.menu Horizontal Scroll Menu with jQuery AutoSprites 表单和表格 在 Web [...]

  54. [...] Demo | Website [...]

  55. [...] jquery mb.menu is another very powerful component for easy creation of jQuery multilevel tree menu or context menu (right mouse button). [...]

  56. [...] jquery mb.menu [...]

  57. [...] 10) jQuery mb.menu [...]

  58. [...] 就是最好的选项,以下插件是09年最好的 jQuery 导航插件。 jquery mb.menu Horizontal Scroll Menu with jQuery  AutoSprites 表单和表格 在 Web [...]

  59. [...] http://pupunzi.open-lab.com/mb-jquery-components/mb-_menu/ [...]

  60. [...] jquery mb.menu [...]

  61. [...] jquery mb.menu is another very powerful component for easy creation of jQuery multilevel tree menu or context menu (right mouse button). [...]

  62. [...] 9. jQuery mb.menu [...]

  63. [...] jquery mb.menu – This is a powerful jQuery component to build easily a multilevel tree menu or a contextual [...]

  64. [...] MB.Menu Un altro plugin per realizzare menu ad albero e/o contestuali da tasto destro. Condividi tweetmeme_style = [...]

  65. [...] jquery mb.menu [...]

  66. [...] http://pupunzi.open-lab.com/mb-jquery-c … /mb-_menu/ 2 katmanlı hoş bir jQuery navigasyon menü [...]

  67. [...] jquery mb.menu [...]

  68. [...] 47. jQuery mb.menu [...]

  69. [...] jquery mb.menu [...]

  70. [...] Demo |   Website: http://pupunzi.open-lab.com/mb-jquery-components/mb-_menu/ [...]

  71. [...] jquery mb.menu is another very powerful component for easy creation of jQuery multilevel tree menu or context menu (right mouse button). [...]

  72. [...] 就是最好的选项,以下插件是09年最好的 jQuery 导航插件。 jquery mb.menu Horizontal Scroll Menu with jQuery AutoSprites 表单和表格 在 Web [...]

  73. [...] 14. MB.Menu [...]

  74. [...] jquery mb.menu [...]

  75. [...] Demo|Download [...]

  76. [...] jQuery MB.Menu [...]

  77. [...] jquery mb.menu [...]

  78. [...] 參考:jquery mb.menu。 Share this:ShareEmailPrintFacebookTwitterLike this:LikeBe the first to like this post. [...]

  79. [...] jquery mb.menu [...]

  80. [...] jQuery mb.Menu [...]

  81. [...] jQuery mb.Menu [...]

  82. [...] jQuery mb.Menu [...]

  83. [...] jQuery mb.Menu [...]

  84. [...] jQuery mb.Menu [...]

  85. [...] jQuery mb.Menu [...]

  86. [...] jQuery mb.Menu [...]

  87. [...]  jQuery mb.Menu [...]

  88. [...] jQuery mb.Menu [...]

  89. [...] jQuery mb.Menu [...]

  90. [...] jQuery mb.Menu [...]



Leave a Reply

Fill in your details below or click an icon to log in:

Gravatar
WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

Join 133 other followers