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
<[EMAIL PROTECTED]>, "Jeff Dege"
<[EMAIL PROTECTED]> 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:[EMAIL PROTECTED]
> Sent: Wed 11/28/2007 5:12 PM
> To: Jeff Dege; [email protected]
> 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
> <[EMAIL PROTECTED]>, "Jeff Dege"
> <[EMAIL PROTECTED]> 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: [EMAIL PROTECTED] on behalf of Steve Lime
>> Sent: Wed 11/28/2007 4:56 PM
>> To: [email protected]
>> 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
>> [email protected]
>> http://openlayers.org/mailman/listinfo/users
_______________________________________________
Users mailing list
[email protected]
http://openlayers.org/mailman/listinfo/users