Ox.Menu: listen to mouseup, not click
This commit is contained in:
parent
41020bb3e5
commit
10704ccb3d
1 changed files with 26 additions and 29 deletions
|
@ -62,10 +62,10 @@ Ox.Menu = function(options, self) {
|
||||||
' Ox' + Ox.toTitleCase(self.options.size)
|
' Ox' + Ox.toTitleCase(self.options.size)
|
||||||
)
|
)
|
||||||
.on({
|
.on({
|
||||||
click: click,
|
|
||||||
mouseenter: mouseenter,
|
mouseenter: mouseenter,
|
||||||
mouseleave: mouseleave,
|
mouseleave: mouseleave,
|
||||||
mousemove: mousemove,
|
mousemove: mousemove,
|
||||||
|
mouseup: mouseup,
|
||||||
mousewheel: mousewheel
|
mousewheel: mousewheel
|
||||||
})
|
})
|
||||||
.bindEvent({
|
.bindEvent({
|
||||||
|
@ -103,29 +103,6 @@ Ox.Menu = function(options, self) {
|
||||||
.addClass('OxBottom')
|
.addClass('OxBottom')
|
||||||
.appendTo(that);
|
.appendTo(that);
|
||||||
|
|
||||||
function click(event) {
|
|
||||||
var item,
|
|
||||||
position,
|
|
||||||
$target = $(event.target),
|
|
||||||
$parent = $target.parent();
|
|
||||||
// necessary for highlight
|
|
||||||
if ($parent.is('.OxCell')) {
|
|
||||||
$target = $parent;
|
|
||||||
$parent = $target.parent();
|
|
||||||
}
|
|
||||||
if ($target.is('.OxCell')) {
|
|
||||||
position = $parent.data('position');
|
|
||||||
item = that.items[position];
|
|
||||||
if (!item.options('disabled')) {
|
|
||||||
clickItem(position);
|
|
||||||
} else {
|
|
||||||
that.hideMenu();
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
that.hideMenu();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function clickItem(position, files) {
|
function clickItem(position, files) {
|
||||||
var item = that.items[position],
|
var item = that.items[position],
|
||||||
group = item.options('group'),
|
group = item.options('group'),
|
||||||
|
@ -276,6 +253,29 @@ Ox.Menu = function(options, self) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function mouseup(event) {
|
||||||
|
var item,
|
||||||
|
position,
|
||||||
|
$target = $(event.target),
|
||||||
|
$parent = $target.parent();
|
||||||
|
// necessary for highlight
|
||||||
|
if ($parent.is('.OxCell')) {
|
||||||
|
$target = $parent;
|
||||||
|
$parent = $target.parent();
|
||||||
|
}
|
||||||
|
if ($target.is('.OxCell')) {
|
||||||
|
position = $parent.data('position');
|
||||||
|
item = that.items[position];
|
||||||
|
if (!item.options('disabled')) {
|
||||||
|
clickItem(position);
|
||||||
|
} else {
|
||||||
|
that.hideMenu();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
that.hideMenu();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function mousewheel(e, delta, deltaX, deltaY) {
|
function mousewheel(e, delta, deltaX, deltaY) {
|
||||||
var $scrollbar;
|
var $scrollbar;
|
||||||
if (deltaY && !$(e.target).is('.OxScrollbar')) {
|
if (deltaY && !$(e.target).is('.OxScrollbar')) {
|
||||||
|
@ -376,9 +376,6 @@ Ox.Menu = function(options, self) {
|
||||||
return $('<div/>', {
|
return $('<div/>', {
|
||||||
'class': 'OxScrollbar Ox' + Ox.toTitleCase(direction),
|
'class': 'OxScrollbar Ox' + Ox.toTitleCase(direction),
|
||||||
html: Ox.SYMBOLS['triangle_' + direction],
|
html: Ox.SYMBOLS['triangle_' + direction],
|
||||||
click: function() { // fixme: do we need to listen to click event?
|
|
||||||
return false;
|
|
||||||
},
|
|
||||||
mousedown: function() {
|
mousedown: function() {
|
||||||
self.scrollSpeed = 2;
|
self.scrollSpeed = 2;
|
||||||
return false;
|
return false;
|
||||||
|
@ -808,7 +805,7 @@ Ox.Menu = function(options, self) {
|
||||||
};
|
};
|
||||||
|
|
||||||
/*@
|
/*@
|
||||||
setItemTitle <f> setItemTitle
|
setItemTitle <f> setItemTitle
|
||||||
(id, title) -> <o> set item title
|
(id, title) -> <o> set item title
|
||||||
@*/
|
@*/
|
||||||
that.setItemTitle = function(id, title) {
|
that.setItemTitle = function(id, title) {
|
||||||
|
@ -835,7 +832,7 @@ Ox.Menu = function(options, self) {
|
||||||
that.gainFocus();
|
that.gainFocus();
|
||||||
that.$layer = Ox.Layer({type: 'menu'})
|
that.$layer = Ox.Layer({type: 'menu'})
|
||||||
.css({top: self.options.mainmenu ? '20px' : 0})
|
.css({top: self.options.mainmenu ? '20px' : 0})
|
||||||
.bindEvent({click: clickLayer})
|
.on({mouseup: clickLayer})
|
||||||
.show();
|
.show();
|
||||||
}
|
}
|
||||||
return that;
|
return that;
|
||||||
|
|
Loading…
Reference in a new issue