Thanks! That did it, my map is now working with touch events. Christian
On Sun, Jul 17, 2011 at 8:22 PM, <[email protected]> wrote: > This is the right way to do it. Because of how we have to handle touch events, > if you want to handle clicks on touch devices, you're best off using the click > handler. > > -- Chris > > On Jul 17, 2011, at 6:48 PM, ext Richard Greenwood wrote: > >> On Sun, Jul 17, 2011 at 4:41 PM, Christian Spanring <[email protected]> >> wrote: >>> Hi, >>> >>> I'm having problems with a 'click' event in mobile browsers. A 'click' >>> event registered with >>> >>> map.events.register('click', map, clickEvent); >>> >>> doesn't seem to fire in default browsers on Android 2.3, 3.2 and iOS >>> 4.2 (works without error on desktop browsers). >>> >>> I'm trying to read the coordinates a user 'tapped' on a map with something >>> like >>> >>> function clickEvent(e) { >>> var clickCoord = e.object.getLonLatFromPixel(e.xy); >>> } >>> >>> without much luck so far. >>> >>> Is there something fundamentally wrong with my approach or is this a >>> known issue with mobile browsers? >>> >>> I'm working with OpenLayers 2.x at 0b9555a4c81fb1f94d56. >>> >>> Thanks! >>> Christian >> >> Christian, >> >> I won't say that this is the right way, but it does work for me. >> >> 1. Create a click handler. This is basically just a copy and paste from >> http://dev.openlayers.org/docs/files/OpenLayers/Handler/Click-js.html >> >> OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, { >> defaultHandlerOptions: { >> 'single': true, >> 'double': false, >> 'pixelTolerance': 0, >> 'stopSingle': false, >> 'stopDouble': false >> }, >> initialize: function(options) { >> this.handlerOptions = OpenLayers.Util.extend( >> {}, this.defaultHandlerOptions >> ); >> OpenLayers.Control.prototype.initialize.apply( >> this, arguments >> ); >> this.handler = new OpenLayers.Handler.Click( >> this, { >> 'click': this.trigger >> }, this.handlerOptions >> ); >> } >> }); >> >> >> 2. Use the click handler: >> >> var click = new OpenLayers.Control.Click( { trigger: function(e) { >> /* do your thing */ >> } >> >> Other may be able to provide a bteer approach. >> >> Rich >> >> -- >> Richard Greenwood >> [email protected] >> www.greenwoodmap.com >> _______________________________________________ >> Users mailing list >> [email protected] >> http://lists.osgeo.org/mailman/listinfo/openlayers-users > > _______________________________________________ Users mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/openlayers-users
