Trouble grabbing class name from selected jQuery UI Menu item

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:

  1. <div id="box"></div>

  2. <div id="selectMenu">
  3.       <button>Item 1</button>
  4.       <ul>
  5.             <li class="red"><a href="#">Item 1</a></li>
  6.             <li class="blue"><a href="#">Item 2</a></li>
  7.             <li class="yellow"><a href="#">Item 3</a></li>
  8. </ul>
  9. </div>

  10. <!--  Item 2 is selected -->

  11. <div id="box" class="blue"></div>

My code is below. Any help is appreciated.

  1.          $(function() {
  2. $("#consumptionUnitSelectMenu button").button({
  3. icons: {
  4. secondary: "ui-icon-triangle-1-s"
  5. }
  6. }).each(function() {
  7. $(this).next().menu({
  8. select: function(event, ui) {
  9. $(this).hide();
  10. // change text of button to selected item
  11. $("#consumptionUnitSelectMenu .ui-button-text").html(ui.item.text());
  12. // attempting change class of object to selected item class
  13. var obj1 = ui.item,
  14.      obj2 = document.getElementById('consumptionUnitIcon');

  15. obj2.className = obj1.className;
  16. },
  17. input: $(this)
  18. }).hide();
  19. }).click(function(event) {
  20. var menu = $(this).next();
  21. if (menu.is(":visible")) {
  22. menu.hide();
  23. return false;
  24. }
  25. menu.menu("deactivate").show().css({top:0, left:0}).position({
  26. my: "left top",
  27. at: "left bottom",
  28. of: this
  29. });
  30. $(document).one("click", function() {
  31. menu.hide();
  32. });
  33. return false;
  34. })
  35. });
    • Topic Participants

    • brett