Dotclear

source: admin/js/tool-man/events.js @ 0:54703be25dd6

Revision 0:54703be25dd6, 1.2 KB checked in by Dsls <dsls@…>, 14 years ago (diff)

2.3 branch (trunk) first checkin

Line 
1/* Copyright (c) 2005 Tim Taylor Consulting (see LICENSE.txt) */
2
3ToolMan._eventsFactory = {
4     fix : function(event) {
5          if (!event) event = window.event
6         
7          if (event.target) {
8               if (event.target.nodeType == 3) event.target = event.target.parentNode
9          } else if (event.srcElement) {
10               event.target = event.srcElement
11          }
12         
13          return event
14     },
15     
16     register : function(element, type, func) {
17          if (element.addEventListener) {
18               element.addEventListener(type, func, false)
19          } else if (element.attachEvent) {
20               if (!element._listeners) element._listeners = new Array()
21               if (!element._listeners[type]) element._listeners[type] = new Array()
22               var workaroundFunc = function() {
23                    func.apply(element, new Array())
24               }
25               element._listeners[type][func] = workaroundFunc
26               element.attachEvent('on' + type, workaroundFunc)
27          }
28     },
29     
30     unregister : function(element, type, func) {
31          if (element.removeEventListener) {
32               element.removeEventListener(type, func, false)
33          } else if (element.detachEvent) {
34               if (element._listeners 
35                         && element._listeners[type] 
36                         && element._listeners[type][func]) {
37                             
38                    element.detachEvent('on' + type, 
39                              element._listeners[type][func])
40               }
41          }
42     }
43}
Note: See TracBrowser for help on using the repository browser.

Sites map