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:
+20
-20
@@ -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
|
||||||
|
*/
|
||||||
|
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
|
// every browser event has a corresponding application event
|
||||||
// (whether it's listened for or not).
|
// (whether it's listened for or not).
|
||||||
this.listeners[ eventType ] = new Array();
|
if (this.listeners[eventType] == null)
|
||||||
|
this.listeners[eventType] = new Array();
|
||||||
|
|
||||||
// use Prototype to register the event cross-browser
|
// use Prototype to register the event cross-browser
|
||||||
Event.observe(this.element, eventType,
|
Event.observe(element, eventType,
|
||||||
this.handleBrowserEvent.bindAsEventListener(this));
|
this.handleBrowserEvent.bindAsEventListener(this));
|
||||||
}
|
|
||||||
|
|
||||||
// disable dragstart in IE so that mousedown/move/up works normally
|
|
||||||
Event.observe(this.element, "dragstart", Event.stop);
|
|
||||||
}
|
}
|
||||||
|
// disable dragstart in IE so that mousedown/move/up works normally
|
||||||
|
Event.observe(element, "dragstart", Event.stop);
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user