Using buttonclick event to avoid issues on touch devices.
This commit is contained in:
@@ -5,6 +5,7 @@
|
||||
|
||||
/**
|
||||
* @requires OpenLayers/Control.js
|
||||
* @requires OpenLayers/Events/buttonclick.js
|
||||
*/
|
||||
|
||||
/**
|
||||
@@ -63,8 +64,7 @@ OpenLayers.Control.Zoom = OpenLayers.Class(OpenLayers.Control, {
|
||||
zoomOut = links.zoomOut,
|
||||
bind = OpenLayers.Function.bind;
|
||||
|
||||
zoomIn.onclick = bind(this.onZoomInClick, this);
|
||||
zoomOut.onclick = bind(this.onZoomOutClick, this);
|
||||
this.events.register("buttonclick", this, this.onZoomClick);
|
||||
this.zoomInLink = zoomIn;
|
||||
this.zoomOutLink = zoomOut;
|
||||
return div;
|
||||
@@ -81,7 +81,9 @@ OpenLayers.Control.Zoom = OpenLayers.Class(OpenLayers.Control, {
|
||||
*/
|
||||
getOrCreateLinks: function(el) {
|
||||
var zoomIn = document.getElementById(this.zoomInId),
|
||||
zoomOut = document.getElementById(this.zoomOutId);
|
||||
zoomOut = document.getElementById(this.zoomOutId),
|
||||
eventElement = zoomOut ? zoomOut.parentNode : this.div;
|
||||
this.events.attachToElement(eventElement);
|
||||
if (!zoomIn) {
|
||||
zoomIn = document.createElement("a");
|
||||
zoomIn.href = "#zoomIn";
|
||||
@@ -89,6 +91,7 @@ OpenLayers.Control.Zoom = OpenLayers.Class(OpenLayers.Control, {
|
||||
zoomIn.className = "olControlZoomIn";
|
||||
el.appendChild(zoomIn);
|
||||
}
|
||||
OpenLayers.Element.addClass(zoomIn, "olButton");
|
||||
if (!zoomOut) {
|
||||
zoomOut = document.createElement("a");
|
||||
zoomOut.href = "#zoomOut";
|
||||
@@ -96,29 +99,29 @@ OpenLayers.Control.Zoom = OpenLayers.Class(OpenLayers.Control, {
|
||||
zoomOut.className = "olControlZoomOut";
|
||||
el.appendChild(zoomOut);
|
||||
}
|
||||
OpenLayers.Element.addClass(zoomOut, "olButton");
|
||||
return {
|
||||
zoomIn: zoomIn, zoomOut: zoomOut
|
||||
};
|
||||
},
|
||||
|
||||
/**
|
||||
* Method: onZoomInClick
|
||||
* Called when zoom-in link is clicked.
|
||||
* Method: onZoomClick
|
||||
* Called when zoomin/out link is clicked.
|
||||
*/
|
||||
onZoomInClick: function() {
|
||||
this.map.zoomIn();
|
||||
return false;
|
||||
onZoomClick: function(evt) {
|
||||
var propagate = true,
|
||||
button = evt.buttonElement;
|
||||
if (button === this.zoomInLink) {
|
||||
this.map.zoomIn();
|
||||
propagate = false;
|
||||
} else if (button === this.zoomOutLink) {
|
||||
this.map.zoomOut();
|
||||
propagate = false;
|
||||
}
|
||||
return propagate;
|
||||
},
|
||||
|
||||
/**
|
||||
* Method: onZoomOutClick
|
||||
* Called when zoom-out link is clicked.
|
||||
*/
|
||||
onZoomOutClick: function() {
|
||||
this.map.zoomOut();
|
||||
return false;
|
||||
},
|
||||
|
||||
/**
|
||||
* Method: destroy
|
||||
* Clean up.
|
||||
|
||||
Reference in New Issue
Block a user