mirror of
https://github.com/coderaiser/cloudcmd.git
synced 2026-01-24 03:05:41 +00:00
feature(menu) v0.5.0
This commit is contained in:
parent
412c6cea8a
commit
da47dfe358
2 changed files with 28 additions and 14 deletions
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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",
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue