0

Standard jQuery-Ui menu fires select event from any menu item, however menubar is not doing so for items in the top level.

Please, see testing code here http://jsfiddle.net/sPSn8/1/

And try top level items in both (horizontal menubar and vertical menu)

Anyway of fixing this?

Thanks, Fausto

JSFiddle code below (as requested when posting)

HTML

<ul id="bar1" class="menubar">
    <li><a href="#About">About</a></li>
    <li>    <a href="#File">File</a>
        <ul>
            <li><a href="#Open...">Open...</a>
            </li>
            <li class="ui-state-disabled">Open recent...</li>
            <li><a href="#Save">Save</a>
            </li>
            <li><a href="#Save as...">Save as...</a>
            </li>
            <li><a href="#Close">Close</a>
            </li>
            <li><a href="#Quit">Quit</a>
            </li>
        </ul>
    </li>
    <li>    <a href="#Edit">Edit</a>

        <ul>
            <li><a href="#Copy">Copy</a>
            </li>
            <li><a href="#Cut">Cut</a>
            </li>
            <li class="ui-state-disabled">Paste</li>
        </ul>
    </li>
    <li>    <a href="#View">View</a>

        <ul>
            <li><a href="#Fullscreen">Fullscreen</a>
            </li>
            <li><a href="#Fit into view">Fit into view</a>
            </li>
            <li>    <a href="#Encoding">Encoding</a>

                <ul>
                    <li><a href="#Auto-detect">Auto-detect</a>
                    </li>
                    <li><a href="#UTF-8">UTF-8</a>
                    </li>
                    <li> <a href="#UTF-16">UTF-16</a>

                        <ul>
                            <li><a href="#Option 1">Option 1</a>
                            </li>
                            <li><a href="#Option 2">Option 2</a>
                            </li>
                            <li><a href="#Option 3">Option 3</a>
                            </li>
                            <li><a href="#Option 4">Option 4</a>
                            </li>
                        </ul>
                    </li>
                </ul>
            </li>
            <li><a href="#Customize...">Customize...</a>
            </li>
        </ul>
    </li>
</ul>
<!-- Simple Menu from jquery ui-->
<br>
<br>

<ul id="menu">
    <li class="ui-state-disabled"><a href="#">Aberdeen</a>
    </li>
    <li><a href="#">Ada</a>
    </li>
    <li><a href="#">Adamsville</a>
    </li>
    <li><a href="#">Addyston</a>
    </li>
    <li>
<a href="#">Delphi</a>

        <ul>
            <li class="ui-state-disabled"><a href="#">Ada</a>
            </li>
            <li><a href="#">Saarland</a>
            </li>
            <li><a href="#">Salzburg</a>
            </li>
        </ul>
    </li>
    <li><a href="#">Saarland</a>
    </li>
    <li>
<a href="#">Salzburg</a>

        <ul>
            <li>
<a href="#">Delphi</a>

                <ul>
                    <li><a href="#">Ada</a>
                    </li>
                    <li><a href="#">Saarland</a>
                    </li>
                    <li><a href="#">Salzburg</a>
                    </li>
                </ul>
            </li>
            <li>
<a href="#">Delphi</a>

                <ul>
                    <li><a href="#">Ada</a>
                    </li>
                    <li><a href="#">Saarland</a>
                    </li>
                    <li><a href="#">Salzburg</a>
                    </li>
                </ul>
            </li>
            <li><a href="#">Perch</a>
            </li>
        </ul>
    </li>
    <li class="ui-state-disabled"><a href="#">Amesville</a>
    </li>
</ul>
    <div id="demo">...</div>

JS

$(function () {
    function select(event, ui) {
        $('#demo').append(ui.item.children().text() +"<br>");
    }
    $("#bar1").menubar({
        autoExpand: true,
        menuIcon: true,
        buttons: false,
        position: {
            within: $("#demo-frame").add(window).first()
        },
        select: select
    });
    // testing Simple menu for hover effetc    
    $("#menu").menu({select: select});

});

CSS

.ui-menu {
    width: 150px;
}
Fausto R.
  • 1,314
  • 3
  • 16
  • 29
  • I looked into it for a while, but I had trouble getting it to work.. I tried to program my own custom click events.. However I found the `jQuery menubar` to be a little buggy. – Trevor Nov 08 '13 at 21:12
  • @Trevor thanks, any better choice for a menubar within jQuery-Ui framework? – Fausto R. Nov 08 '13 at 22:11
  • The only thing I can think of is you could try using the `jQuery ui menu` and use css to make it horizontal.. As per this question : http://stackoverflow.com/questions/12944364/how-to-make-jquery-ui-nav-menu-horizontal If that does not work for you, I don't know any other way to do it using jquery ui off hand.. But Twitter Bootstrap 3 uses jquery and has a pretty stable menu, I don't know that it has a built select option but it would be possible to code the same functionality using it. – Trevor Nov 08 '13 at 22:16
  • http://knowledgebase.bridge-delivery.com/jquery-ui-menu-horizontal-and-vertical/ This looks like it works well. – Trevor Nov 08 '13 at 23:04

0 Answers0