Merge pull request #612 from ahocevar/612
Touch events do not trigger the default action in attribution links. r=@marcjansen
This commit is contained in:
@@ -121,6 +121,26 @@ OpenLayers.Events.buttonclick = OpenLayers.Class({
|
||||
} while(--depth > 0 && element);
|
||||
return button;
|
||||
},
|
||||
|
||||
/**
|
||||
* Method: ignore
|
||||
* Check for event target elements that should be ignored by OpenLayers.
|
||||
*
|
||||
* Parameters:
|
||||
* element - {DOMElement} The event target.
|
||||
*/
|
||||
ignore: function(element) {
|
||||
var depth = 3,
|
||||
ignore = false;
|
||||
do {
|
||||
if (element.nodeName.toLowerCase() === 'a') {
|
||||
ignore = true;
|
||||
break;
|
||||
}
|
||||
element = element.parentNode;
|
||||
} while (--depth > 0 && element);
|
||||
return ignore;
|
||||
},
|
||||
|
||||
/**
|
||||
* Method: buttonClick
|
||||
@@ -170,6 +190,7 @@ OpenLayers.Events.buttonclick = OpenLayers.Class({
|
||||
propagate = false;
|
||||
}
|
||||
} else {
|
||||
propagate = !this.ignore(OpenLayers.Event.element(evt));
|
||||
delete this.startEvt;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -63,6 +63,40 @@
|
||||
events.destroy();
|
||||
}
|
||||
|
||||
function test_ignore(t) {
|
||||
t.plan(5);
|
||||
|
||||
// set up
|
||||
|
||||
events = new OpenLayers.Events({}, element);
|
||||
buttonClick = new OpenLayers.Events.buttonclick(events);
|
||||
|
||||
var link = document.createElement('a'),
|
||||
span1 = document.createElement('span'),
|
||||
span2 = document.createElement('span'),
|
||||
span3 = document.createElement('span');
|
||||
link.appendChild(span1);
|
||||
span1.appendChild(span2);
|
||||
span2.appendChild(span3);
|
||||
|
||||
t.eq(buttonClick.ignore(link), true,
|
||||
'ignore returns true when element is a link');
|
||||
t.eq(buttonClick.ignore(span1), true,
|
||||
'ignore returns true when element is link descendant level 1');
|
||||
t.eq(buttonClick.ignore(span2), true,
|
||||
'ignore returns true when element is link descendant level 2');
|
||||
t.eq(buttonClick.ignore(span3), false,
|
||||
'ignore returns false when element is link descendant level 3');
|
||||
t.eq(buttonClick.ignore(element), false,
|
||||
'ignore returns false when element is not a link');
|
||||
|
||||
|
||||
// tear down
|
||||
|
||||
buttonClick.destroy();
|
||||
events.destroy();
|
||||
}
|
||||
|
||||
function test_ButtonClick_buttonClick(t) {
|
||||
t.plan(27);
|
||||
events = new OpenLayers.Events({}, element);
|
||||
|
||||
Reference in New Issue
Block a user