Trouble grabbing class name from selected jQuery UI Menu item
I'm using the new Menu widget introduced in jQuery UI 1.9 Milestone 2 (
http://blog.jqueryui.com/2010/06/jquery-ui-19m2-menu/).
In my code below, I'm attempting to have the class name of a specified <div> replaced with the class name of the selected menu item. For example:
- <div id="box"></div>
- <div id="selectMenu">
- <button>Item 1</button>
- <ul>
- <li class="red"><a href="#">Item 1</a></li>
- <li class="blue"><a href="#">Item 2</a></li>
- <li class="yellow"><a href="#">Item 3</a></li>
- </ul>
- </div>
- <!--
Item 2 is selected -->
- <div id="box" class="blue"></div>
My code is below. Any help is appreciated.
- $(function() {
- $("#consumptionUnitSelectMenu button").button({
- icons: {
- secondary: "ui-icon-triangle-1-s"
- }
- }).each(function() {
- $(this).next().menu({
- select: function(event, ui) {
- $(this).hide();
- // change text of button to selected item
- $("#consumptionUnitSelectMenu .ui-button-text").html(ui.item.text());
-
- // attempting change class of object to selected item class
- var obj1 = ui.item,
- obj2 = document.getElementById('consumptionUnitIcon');
- obj2.className = obj1.className;
- },
- input: $(this)
- }).hide();
- }).click(function(event) {
- var menu = $(this).next();
- if (menu.is(":visible")) {
- menu.hide();
- return false;
- }
- menu.menu("deactivate").show().css({top:0, left:0}).position({
- my: "left top",
- at: "left bottom",
- of: this
- });
- $(document).one("click", function() {
- menu.hide();
- });
- return false;
- })
- });