From 1726680b105c342af0863c573ea3e0ff261bc7ec Mon Sep 17 00:00:00 2001 From: Schuyler Erle Date: Fri, 11 Aug 2006 17:57:41 +0000 Subject: [PATCH] Separated out attachToElement() so that a single Events object can capture browser events from more than one object. Intended for use by Layer.EventPane. git-svn-id: http://svn.openlayers.org/trunk/openlayers@1192 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf --- lib/OpenLayers/Events.js | 44 ++++++++++++++++++++-------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/lib/OpenLayers/Events.js b/lib/OpenLayers/Events.js index 5502a37d1d..a722a615d9 100644 --- a/lib/OpenLayers/Events.js +++ b/lib/OpenLayers/Events.js @@ -42,38 +42,38 @@ OpenLayers.Events.prototype = { this.object = object; this.element = element; this.eventTypes = eventTypes; - this.listeners = new Object(); // if eventTypes is specified, create a listeners list for each // custom application event. - if (this.eventTypes != null) { - - for (var i = 0; i < this.eventTypes.length; i++) { + if (this.eventTypes != null) + for (var i = 0; i < this.eventTypes.length; i++) this.listeners[ this.eventTypes[i] ] = new Array(); - } - } - // if a dom element is specified, add a listeners list // for browser events on the element and register them - if (this.element != null) { + if (this.element != null) + this.attachToElement(element); + }, - for (var i = 0; i < this.BROWSER_EVENTS.length; i++) { - var eventType = this.BROWSER_EVENTS[i]; - - // every browser event has a corresponding application event - // (whether it's listened for or not). - this.listeners[ eventType ] = new Array(); - - // use Prototype to register the event cross-browser - Event.observe(this.element, eventType, - this.handleBrowserEvent.bindAsEventListener(this)); - } - - // disable dragstart in IE so that mousedown/move/up works normally - Event.observe(this.element, "dragstart", Event.stop); + /** + * @param {HTMLDOMElement} element a DOM element to attach browser events to + */ + attachToElement: function (element) { + for (var i = 0; i < this.BROWSER_EVENTS.length; i++) { + var eventType = this.BROWSER_EVENTS[i]; + + // every browser event has a corresponding application event + // (whether it's listened for or not). + if (this.listeners[eventType] == null) + this.listeners[eventType] = new Array(); + + // use Prototype to register the event cross-browser + Event.observe(element, eventType, + this.handleBrowserEvent.bindAsEventListener(this)); } + // disable dragstart in IE so that mousedown/move/up works normally + Event.observe(element, "dragstart", Event.stop); }, /**