Author: jmorliaguet Date: Tue Dec 27 01:24:35 2005 New Revision: 2087 Modified: cpsskins/branches/jmo-perspectives/ui/framework/cpsskins.js Log:
- almost working submenus Modified: cpsskins/branches/jmo-perspectives/ui/framework/cpsskins.js ============================================================================== --- cpsskins/branches/jmo-perspectives/ui/framework/cpsskins.js (original) +++ cpsskins/branches/jmo-perspectives/ui/framework/cpsskins.js Tue Dec 27 01:24:35 2005 @@ -226,13 +226,18 @@ }, browse: function(e) { + if (this.submenu) { + var x = Event.pointerX(e); + var y = Event.pointerY(e); + if (!Position.within(this.submenu, x, y)) { + Element.hide(this.submenu); + } + } node = Event.element(e); var submenus = document.getElementsByClassName('submenu', node); if (submenus.length > 0) { this.submenu = submenus[0]; Element.show(this.submenu); - } else { - if (this.submenu) Element.hide(this.submenu); } }, @@ -266,6 +271,10 @@ if (!document.all) this.submenuLeft += parseInt(menu.style.left); + // clear all submenus + document.getElementsByClassName('submenu', this.menu).each(function(v) { + v.parentNode.removeChild(v); + }); this.filterMenuItems(); Element.show(this.menu); }, @@ -301,18 +310,18 @@ var item = document.createElement('a'); item.setAttribute('href', '#'); item.setAttribute('choice', s[0]); - item.appendChild(document.createTextNode(s[1] ? s[1] : s[0])); + item.innerHTML = s[1] ? s[1] : s[0]; submenu.appendChild(item); } Element.addClassName(submenu, 'submenu'); - submenu.style.left = this.submenuX; + submenu.style.left = this.submenuLeft + 'px'; + submenu.style.display = 'none'; node.appendChild(submenu); - Element.hide(submenu); } } - Element.show(node); + node.style.display = 'block'; } else { - Element.hide(node); + node.style.display = 'none'; } } -- http://lists.nuxeo.com/mailman/listinfo/z3lab-checkins