make stopObserving/stopObservingElement more resilient: can accept either
elements or ids. Closes #603 (and makes #604 work). git-svn-id: http://svn.openlayers.org/trunk/openlayers@2946 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
@@ -88,9 +88,13 @@ OpenLayers.Event = {
|
||||
* element's cached observers, calling stopObserving on each one,
|
||||
* skipping those entries which can no longer be removed.
|
||||
*
|
||||
* @param {String} elementId
|
||||
* @param {DOMElement || String} elementParam
|
||||
*/
|
||||
stopObservingElement: function(elementId) {
|
||||
stopObservingElement: function(elementParam) {
|
||||
|
||||
var elementId = (typeof elementParam == "string") ? elementParam
|
||||
: OpenLayers.Util.getElement(elementParam).id;
|
||||
|
||||
var elementObservers = OpenLayers.Event.observers[elementId];
|
||||
if (elementObservers) {
|
||||
var i=0;
|
||||
@@ -141,12 +145,12 @@ OpenLayers.Event = {
|
||||
* @type Boolean
|
||||
*/
|
||||
stopObserving: function(elementParam, name, observer, useCapture) {
|
||||
var foundEntry = false;
|
||||
var element = OpenLayers.Util.getElement(elementParam);
|
||||
if (element) {
|
||||
|
||||
useCapture = useCapture || false;
|
||||
|
||||
var element = OpenLayers.Util.getElement(elementParam);
|
||||
var elementId = (typeof elementParam == "string") ? elementParam
|
||||
: element.id;
|
||||
|
||||
if (name == 'keypress') {
|
||||
if ( navigator.appVersion.match(/Konqueror|Safari|KHTML/) ||
|
||||
element.detachEvent) {
|
||||
@@ -155,7 +159,8 @@ OpenLayers.Event = {
|
||||
}
|
||||
|
||||
// find element's entry in this.observers cache and remove it
|
||||
var elementObservers = OpenLayers.Event.observers[element.id];
|
||||
var foundEntry = false;
|
||||
var elementObservers = OpenLayers.Event.observers[elementId];
|
||||
if (elementObservers) {
|
||||
|
||||
// find the specific event type in the element's list
|
||||
@@ -184,7 +189,6 @@ OpenLayers.Event = {
|
||||
} else if (element && element.detachEvent) {
|
||||
element.detachEvent('on' + name, observer);
|
||||
}
|
||||
}
|
||||
return foundEntry;
|
||||
},
|
||||
|
||||
|
||||
Reference in New Issue
Block a user