Make zoomToExtent control use <button> instead of <a>

This commit is contained in:
Antoine Abt
2014-02-19 09:27:20 +01:00
parent b6052320ad
commit b3abc166a4
4 changed files with 30 additions and 19 deletions

View File

@@ -275,6 +275,7 @@
* @typedef {Object} olx.control.ZoomToExtentOptions
* @property {string|undefined} className Class name. Default is `ol-zoom-extent`.
* @property {Element|undefined} target Target.
* @property {string|undefined} tipLabel Text label to use for the zoom-extent tip. Default is `Zoom to extent`
* @property {ol.Extent|undefined} extent The extent to zoom to. If
* undefined the validity extent of the view projection is used.
* @todo stability experimental

View File

@@ -97,7 +97,6 @@ goog.inherits(ol.control.Zoom, ol.control.Control);
*/
ol.control.Zoom.prototype.zoomByDelta_ = function(delta, browserEvent) {
// prevent the anchor from getting appended to the url
browserEvent.preventDefault();
var map = this.getMap();
// FIXME works for View2D only
var view = map.getView();

View File

@@ -33,12 +33,18 @@ ol.control.ZoomToExtent = function(opt_options) {
var className = goog.isDef(options.className) ? options.className :
'ol-zoom-extent';
var tipLabel = goog.isDef(options.tipLabel) ?
options.tipLabel : 'Fit to extent';
var tip = goog.dom.createDom(goog.dom.TagName.SPAN, {
'role' : 'tooltip'
}, tipLabel);
var element = goog.dom.createDom(goog.dom.TagName.DIV, {
'class': className + ' ' + ol.css.CLASS_UNSELECTABLE
});
var button = goog.dom.createDom(goog.dom.TagName.A, {
'href': '#zoomExtent'
var button = goog.dom.createDom(goog.dom.TagName.BUTTON, {
'class': 'ol-has-tooltip'
});
goog.dom.appendChild(button, tip);
goog.dom.appendChild(element, button);
goog.events.listen(element, [
@@ -60,7 +66,6 @@ goog.inherits(ol.control.ZoomToExtent, ol.control.Control);
*/
ol.control.ZoomToExtent.prototype.handleZoomToExtent_ = function(browserEvent) {
// prevent #zoomExtent anchor from getting appended to the url
browserEvent.preventDefault();
var map = this.getMap();
var view = map.getView();
goog.asserts.assert(goog.isDef(view));