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:
@@ -122,6 +122,26 @@ OpenLayers.Events.buttonclick = OpenLayers.Class({
|
|||||||
return button;
|
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
|
* Method: buttonClick
|
||||||
* Check if a button was clicked, and fire the buttonclick event
|
* Check if a button was clicked, and fire the buttonclick event
|
||||||
@@ -170,6 +190,7 @@ OpenLayers.Events.buttonclick = OpenLayers.Class({
|
|||||||
propagate = false;
|
propagate = false;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
propagate = !this.ignore(OpenLayers.Event.element(evt));
|
||||||
delete this.startEvt;
|
delete this.startEvt;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -63,6 +63,40 @@
|
|||||||
events.destroy();
|
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) {
|
function test_ButtonClick_buttonClick(t) {
|
||||||
t.plan(27);
|
t.plan(27);
|
||||||
events = new OpenLayers.Events({}, element);
|
events = new OpenLayers.Events({}, element);
|
||||||
|
|||||||
Reference in New Issue
Block a user