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
This commit is contained in:
Schuyler Erle
2006-08-11 17:57:41 +00:00
parent 45bea9f9f4
commit 1726680b10
+22 -22
View File
@@ -42,38 +42,38 @@ OpenLayers.Events.prototype = {
this.object = object; this.object = object;
this.element = element; this.element = element;
this.eventTypes = eventTypes; this.eventTypes = eventTypes;
this.listeners = new Object(); this.listeners = new Object();
// if eventTypes is specified, create a listeners list for each // if eventTypes is specified, create a listeners list for each
// custom application event. // custom application event.
if (this.eventTypes != null) { if (this.eventTypes != null)
for (var i = 0; i < this.eventTypes.length; i++)
for (var i = 0; i < this.eventTypes.length; i++) {
this.listeners[ this.eventTypes[i] ] = new Array(); this.listeners[ this.eventTypes[i] ] = new Array();
}
}
// if a dom element is specified, add a listeners list // if a dom element is specified, add a listeners list
// for browser events on the element and register them // 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]; * @param {HTMLDOMElement} element a DOM element to attach browser events to
*/
// every browser event has a corresponding application event attachToElement: function (element) {
// (whether it's listened for or not). for (var i = 0; i < this.BROWSER_EVENTS.length; i++) {
this.listeners[ eventType ] = new Array(); var eventType = this.BROWSER_EVENTS[i];
// use Prototype to register the event cross-browser // every browser event has a corresponding application event
Event.observe(this.element, eventType, // (whether it's listened for or not).
this.handleBrowserEvent.bindAsEventListener(this)); if (this.listeners[eventType] == null)
} this.listeners[eventType] = new Array();
// disable dragstart in IE so that mousedown/move/up works normally // use Prototype to register the event cross-browser
Event.observe(this.element, "dragstart", Event.stop); 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);
}, },
/** /**