commented e.stopImmediatePropagation()

This commit is contained in:
coderaiser 2013-02-20 09:50:14 -05:00
parent 13351528f2
commit d013d66d65
4 changed files with 60 additions and 26 deletions

View file

@ -157,6 +157,8 @@ for reading.
* Fixed bug with getting showed menu in firefox.
* Commented e.stopImmediatePropagation() of function layerClick
in contextmenu file, for correct work of context menu.
2012.12.12, Version 0.1.8

View file

@ -114,7 +114,7 @@ var CloudCommander, Util,
lElement.addEventListener(
pType,
pListener,
pUseCapture || false
pUseCapture
);
Listeners.push({
@ -133,14 +133,13 @@ var CloudCommander, Util,
* @param pElement {document by default}
*/
DOM.addOneTimeListener = function(pType, pListener, pElement, pUseCapture){
var lRet = this;
DOM.addListener(pType,
function oneTime(pEvent){
DOM.removeListener(pType, oneTime, pElement, pUseCapture);
var lRet = this,
lOneTime = function (pEvent){
DOM.removeListener(pType, lOneTime, pElement, pUseCapture);
pListener(pEvent);
},
pUseCapture, pElement);
};
DOM.addListener(pType, lOneTime, pElement, pUseCapture);
return lRet;
};
@ -158,7 +157,7 @@ var CloudCommander, Util,
(pElement || window).removeEventListener(
pType,
pListener,
pUseCapture || false
pUseCapture
);
return lRet;

View file

@ -179,13 +179,7 @@ var CloudCommander, Util, DOM, $;
},
// define the elements of the menu
items: getAllItems(lMenuItems),
events:{
hide: function(){
var lLayer = DOM.getById('context-menu-layer');
DOM.addOneTimeListener('contextmenu', clickProcessing, lLayer);
}
}
items: getAllItems(lMenuItems)
};
return lRet;
@ -222,7 +216,7 @@ var CloudCommander, Util, DOM, $;
* is not going on. All magic happening in
* DOM tree
*/
function clickProcessing(pEvent){
function clickProcessing(pEvent){
/* if clicked on menu item */
var lParent = pEvent.target.parentElement,
lClassName = lParent && lParent.className;
@ -268,14 +262,53 @@ var CloudCommander, Util, DOM, $;
}
}
function __clickProcessing(pEvent){
var lLayer = DOM.getById('context-menu-layer');
if(lLayer){
var lStyle,
lParent;
if(lLayer)
lStyle = lLayer.style.cssText;
/* hide invisible menu layer */
if(lStyle)
lLayer.style.cssText = lStyle
.replace('z-index: 1', 'z-index:-1');
var lElement;
if(pEvent.$trigger)
lElement = pEvent.$trigger[0];
else
lElement = document.elementFromPoint(pEvent.x, pEvent.y);
var lTag = lElement.tagName;
if(lTag === 'A' || lTag === 'SPAN'){
if (lElement.tagName === 'A')
lParent = lElement.parentElement.parentElement;
else if(lElement.tagName === 'SPAN')
lParent = lElement.parentElement;
if(lParent.className === '')
DOM.setCurrentFile(lParent);
}
else
DOM.setCurrentFile(lElement);
/* show invisible menu layer */
if(lLayer && lStyle)
lLayer.style.cssText = lStyle;
KeyBinding.set();
}
}
function set(){
if(!MenuSeted){
$.contextMenu(getConfig());
DOM.addClickListener(clickProcessing);
MenuSeted = true;
DOM.addListener('mousedown', clickProcessing);
}
}

View file

@ -347,19 +347,19 @@ var // currently active contextMenu trigger
layerClick: function(e) {
var $this = $(this),
root = $this.data('contextMenuRoot'),
mouseup = false,
//mouseup = false,
button = e.button,
x = e.pageX,
y = e.pageY,
target,
offset,
selectors;
offset;
//selectors;
e.preventDefault();
e.stopImmediatePropagation();
//e.stopImmediatePropagation();
setTimeout(function() {
var $window, hideshow, possibleTarget;
var $window;//, hideshow, possibleTarget;
var triggerAction = ((root.trigger == 'left' && button === 0) || (root.trigger == 'right' && button === 2));
// find the element that would've been clicked, wasn't the layer in the way
@ -787,7 +787,7 @@ var // currently active contextMenu trigger
op = {
show: function(opt, x, y) {
var $trigger = $(this),
offset,
//offset,
css = {};
// hide any open menus