[OpenLayers-Users] OT: Event propagation problem...
Steve Lime
Steve.Lime at dnr.state.mn.us
Thu Nov 29 12:01:27 EST 2007
What I ended up with is a div that covers the map and then I did something like:
var elem = document.getElementById('myDiv');
elem.addEventListener( 'click', stopPropagation, false);
elem.addEventListener( 'mousedown', stopPropagation, false);
elem.addEventListener( 'mousemove', stopPropagation, false);
elem.addEventListener('mouseup', stopPropagation, false);
elem.addEventListener('mouseover', stopPropagation, false);
elem.addEventListener('mouseout', stopPropagation, false);
where stopPropagation is:
function stopPropagation(e) {
if (e && e.stopPropagation) evt.stopPropagation();
else if (window.event) window.event.cancelBubble = true;
}
Then I just hide/show the overlayed div as necessary. Works like a charm.
Steve
>>> On 11/29/2007 at 10:42 AM, in message
<34E056CD4D475841B8C9ABCE956F92F615A37C at mrburns.KorOffice.local>, "Jeff Dege"
<jdege at korterra.com> wrote:
> I had a similar problem, and I hacked in a little kludge to allow me to turn
> off event propogation entirely:
>
> var map = new OpenLayers.Map('map', mapOptions);
>
> //This is a serious kludge, to allow us to turn off event handling on the
> map,
> //when OpenLayers supports no such functionality.
> map.events.idle = false;
> map.events.originalTriggerEvent = openLayersMap.events.triggerEvent;
> map.events.triggerEvent = function(type, evt) {
> if (this.idle) return;
> this.originalTriggerEvent(type, evt);
> };
>
> It's ugly, and it may get me into real trouble, some time in the future, but
> it works.
>
> If I set map.events.idle = true, no events fire at all.
>
>
> -----Original Message-----
> From: Steve Lime [mailto:Steve.Lime at dnr.state.mn.us]
> Sent: Wed 11/28/2007 5:12 PM
> To: Jeff Dege; users at openlayers.org
> Subject: RE: [OpenLayers-Users] OT: Event propagation problem...
>
> No response at all, the content covers the whole map interface at the
> moment. Whether that works as a design (from a user perspective) is yet to be
> seen.
>
> Steve
>
>>>> On 11/28/2007 at 5:01 PM, in message
> <34E056CD4D475841B8C9ABCE956F92F615A37B at mrburns.KorOffice.local>, "Jeff Dege"
> <jdege at korterra.com> wrote:
>> Do you want the map to not respond to clicks on your help or legend div?
>>
>> If so, you'll need to define event handlers, the way Popups do.
>>
>> Or do you want the map to not respond at all, while your help or legend is
>> visible?
>>
>>
>> -----Original Message-----
>> From: users-bounces at openlayers.org on behalf of Steve Lime
>> Sent: Wed 11/28/2007 4:56 PM
>> To: users at openlayers.org
>> Subject: [OpenLayers-Users] OT: Event propagation problem...
>>
>> Hi all: Slightly off-topic question. I'm working on an interface that plops
>> help and legend content over the top of an OpenLayers
>> map. Problem is that mouse events continue to propagate through the help or
>> legend content to OpenLayers. Anyone aware of
>> an easy way to stop that or do I need to go ahead and define event handlers
>> (that do nothing) for the div that holds this other
>> content?
>>
>> Steve
>>
>> _______________________________________________
>> Users mailing list
>> Users at openlayers.org
>> http://openlayers.org/mailman/listinfo/users
More information about the Users
mailing list