MDL-41238 atto - close menu style when clicking anywhere outside it

This commit is contained in:
Jason Fowler
2013-09-06 14:46:45 +08:00
parent b69ec2889e
commit 21f6c5292b
4 changed files with 31 additions and 10 deletions
@@ -58,13 +58,21 @@ M.editor_atto = M.editor_atto || {
var disabled = this.getAttribute('disabled');
var overlayid = this.getAttribute('data-menu');
var overlay = M.editor_atto.menus[overlayid];
var menu = overlay.get('bodyContent');
if (overlay.get('visible') || disabled) {
overlay.hide();
menu.detach('clickoutside');
} else {
menu.on('clickoutside', function(ev) {
if (ev.target.ancestor() !== this) {
if (overlay.get('visible')) {
menu.detach('clickoutside');
overlay.hide();
}
}
}, this);
overlay.show();
}
},
/**
@@ -163,7 +171,6 @@ M.editor_atto = M.editor_atto || {
var menu = Y.Node.create('<div class="atto_' + plugin + '_menu' +
' atto_menu" data-editor="' + Y.Escape.html(elementid) + '"></div>');
var i = 0, entry = {};
for (i = 0; i < entries.length; i++) {
File diff suppressed because one or more lines are too long
@@ -58,13 +58,21 @@ M.editor_atto = M.editor_atto || {
var disabled = this.getAttribute('disabled');
var overlayid = this.getAttribute('data-menu');
var overlay = M.editor_atto.menus[overlayid];
var menu = overlay.get('bodyContent');
if (overlay.get('visible') || disabled) {
overlay.hide();
menu.detach('clickoutside');
} else {
menu.on('clickoutside', function(ev) {
if (ev.target.ancestor() !== this) {
if (overlay.get('visible')) {
menu.detach('clickoutside');
overlay.hide();
}
}
}, this);
overlay.show();
}
},
/**
@@ -163,7 +171,6 @@ M.editor_atto = M.editor_atto || {
var menu = Y.Node.create('<div class="atto_' + plugin + '_menu' +
' atto_menu" data-editor="' + Y.Escape.html(elementid) + '"></div>');
var i = 0, entry = {};
for (i = 0; i < entries.length; i++) {
+10 -3
View File
@@ -56,13 +56,21 @@ M.editor_atto = M.editor_atto || {
var disabled = this.getAttribute('disabled');
var overlayid = this.getAttribute('data-menu');
var overlay = M.editor_atto.menus[overlayid];
var menu = overlay.get('bodyContent');
if (overlay.get('visible') || disabled) {
overlay.hide();
menu.detach('clickoutside');
} else {
menu.on('clickoutside', function(ev) {
if (ev.target.ancestor() !== this) {
if (overlay.get('visible')) {
menu.detach('clickoutside');
overlay.hide();
}
}
}, this);
overlay.show();
}
},
/**
@@ -161,7 +169,6 @@ M.editor_atto = M.editor_atto || {
var menu = Y.Node.create('<div class="atto_' + plugin + '_menu' +
' atto_menu" data-editor="' + Y.Escape.html(elementid) + '"></div>');
var i = 0, entry = {};
for (i = 0; i < entries.length; i++) {