r909 - in branches/experimental: tests/visual/menu ui
Author: paul.bakaus
Date: Tue Nov 11 08:30:28 2008
New Revision: 909
Modified:
branches/experimental/tests/visual/menu/menu.html
branches/experimental/ui/ui.menu.js
Log:
menu: JSON functionality (works both in 'add' and options.items)
Modified: branches/experimental/tests/visual/menu/menu.html
==============================================================================
--- branches/experimental/tests/visual/menu/menu.html (original)
+++ branches/experimental/tests/visual/menu/menu.html Tue Nov 11 08:30:28
2008
@@ -66,7 +66,21 @@
});
$('#menu2').menu({
- items: '#items3',
+ items: {
+ 'Menu Item 1': {
+ items: {
+ 'Sub Item 1': {},
+ 'Sub Item 2': {}
+ },
+ icon: null,
+ choose: function() {
+ alert(1);
+ }
+ },
+ 'Menu Item 2': {},
+ 'Menu Item 3': {},
+ 'Menu Item 4': {}
+ },
mode: 'context',
appendTo: 'element',
direction: 'left above',
Modified: branches/experimental/ui/ui.menu.js
==============================================================================
--- branches/experimental/ui/ui.menu.js (original)
+++ branches/experimental/ui/ui.menu.js Tue Nov 11 08:30:28 2008
@@ -32,7 +32,7 @@
if(o.items.constructor == String) {
this.items = $(this.options.items, this.element).length ?
$(this.options.items, this.element).remove() :
$(this.options.items).remove();
} else {
- this.items = o.items.length ? o.items.remove() :
this._generateMarkupFromJSON();
+ this.items = o.items.length ? o.items.remove() :
this._generateMarkupFromJSON(o.items);
}
//Create the actual wrapping menu and append the markup
@@ -365,7 +365,17 @@
},
_generateMarkupFromJSON: function(json) {
+
+ var html = $('<ul></ul>');
+ for(var i in json) {
+ var item = $('<li><a href="#">'+i+'</a></li>').appendTo(html);
+ if(json[i].items)
item.append(this._generateMarkupFromJSON(json[i].items));
+
+ }
+
+ return html;
+
},
add: function(item, position) {