first
This commit is contained in:
43
_core/opensrc/tool-man/events.js
Normal file
43
_core/opensrc/tool-man/events.js
Normal file
@@ -0,0 +1,43 @@
|
||||
/* Copyright (c) 2005 Tim Taylor Consulting (see LICENSE.txt) */
|
||||
|
||||
ToolMan._eventsFactory = {
|
||||
fix : function(event) {
|
||||
if (!event) event = window.event
|
||||
|
||||
if (event.target) {
|
||||
if (event.target.nodeType == 3) event.target = event.target.parentNode
|
||||
} else if (event.srcElement) {
|
||||
event.target = event.srcElement
|
||||
}
|
||||
|
||||
return event
|
||||
},
|
||||
|
||||
register : function(element, type, func) {
|
||||
if (element.addEventListener) {
|
||||
element.addEventListener(type, func, false)
|
||||
} else if (element.attachEvent) {
|
||||
if (!element._listeners) element._listeners = new Array()
|
||||
if (!element._listeners[type]) element._listeners[type] = new Array()
|
||||
var workaroundFunc = function() {
|
||||
func.apply(element, new Array())
|
||||
}
|
||||
element._listeners[type][func] = workaroundFunc
|
||||
element.attachEvent('on' + type, workaroundFunc)
|
||||
}
|
||||
},
|
||||
|
||||
unregister : function(element, type, func) {
|
||||
if (element.removeEventListener) {
|
||||
element.removeEventListener(type, func, false)
|
||||
} else if (element.detachEvent) {
|
||||
if (element._listeners
|
||||
&& element._listeners[type]
|
||||
&& element._listeners[type][func]) {
|
||||
|
||||
element.detachEvent('on' + type,
|
||||
element._listeners[type][func])
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user