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