feature(menu) v0.5.0

This commit is contained in:
coderaiser 2014-05-15 04:40:02 -04:00
parent 412c6cea8a
commit da47dfe358
2 changed files with 28 additions and 14 deletions

View file

@ -55,8 +55,7 @@ var MenuIO, Util;
}
function createMenu(menuData) {
var elementMenu,
menu = '',
var menu,
items = '',
buildItems = function(menuData, path) {
var DATA_MENU = 'data-menu="js-submenu"',
@ -113,9 +112,8 @@ var MenuIO, Util;
menu.innerHTML = items;
Element.appendChild(menu);
elementMenu = Element.querySelector('[data-name="js-menu"]');
return elementMenu;
return menu;
}
this.show = showMenuElement;
@ -145,19 +143,25 @@ var MenuIO, Util;
}
function onClick(event, checkResult) {
var itemData,
var itemData, notClick,
beforeClick = Options.beforeClick,
name = Options.name,
element = event.target,
is = checkResult || checkElement(element, {
x: event.clientX,
y: event.clientY
});
notClick = Util.exec(beforeClick, name);
if (is.sub) {
event.preventDefault();
} else {
hideMenuElement();
if (is.name || is.item) {
if (!notClick && (is.name || is.item)) {
itemData = getMenuItemData(element);
Util.exec(itemData);
}
@ -175,8 +179,10 @@ var MenuIO, Util;
if (is.name || is.item || is.sub)
onClick(event, is);
else
else {
hideMenuElement();
showMenuElement(x, y);
}
event.preventDefault();
}
@ -198,14 +204,22 @@ var MenuIO, Util;
}
function showMenuElement(x, y) {
Util.exec(Options.beforShow);
ElementMenu.classList.remove('menu-hidden');
setMenuPosition(x, y);
var beforeShow = Options.beforeShow,
name = Options.name,
notShow = Util.exec(beforeShow, x, y, name);
if (!notShow) {
ElementMenu.classList.remove('menu-hidden');
setMenuPosition(x, y);
}
}
function hideMenuElement() {
Util.exec(Options.beforClose);
ElementMenu.classList.add('menu-hidden');
var notHide = Util.exec(Options.beforeClose);
if (!notHide)
ElementMenu.classList.add('menu-hidden');
}
function getMenuItemData(element) {

View file

@ -1,6 +1,6 @@
{
"name": "menu",
"version": "0.4.5",
"version": "0.5.0",
"author": "coderaiser <mnemonic.enemy@gmail.com> (https://github.com/coderaiser)",
"description": "Simple css-based multillevel context menu",
"homepage": "http://coderaiser.github.io/menu",