136
|
1 |
//===================================================================== |
|
2 |
// Event Listener |
|
3 |
// by Scott Andrew - http://scottandrew.com |
|
4 |
// edited by Mark Wubben, <useCapture> is now set to false |
|
5 |
// Now allows callback lists for objects with an Id - Alex Tingle |
|
6 |
//===================================================================== |
|
7 |
function firetree_addEvent(obj, evType, fn) |
|
8 |
{ |
|
9 |
if(obj.id){ |
|
10 |
if(!document._callbacks_by_id) |
|
11 |
document._callbacks_by_id=new Array(); |
|
12 |
if(!document._callbacks_by_id[obj.id]) |
|
13 |
document._callbacks_by_id[obj.id]=new Array(); |
|
14 |
document._callbacks_by_id[obj.id].push(fn); |
|
15 |
fn=callback; |
|
16 |
} |
|
17 |
|
|
18 |
if(obj.addEventListener){ |
|
19 |
obj.addEventListener(evType, fn, false); |
|
20 |
return true; |
|
21 |
} else if (obj.attachEvent){ |
|
22 |
var r = obj.attachEvent('on'+evType, fn); |
|
23 |
return r; |
|
24 |
} else { |
|
25 |
return false; |
|
26 |
} |
|
27 |
|
|
28 |
function callback(e) |
|
29 |
{ |
|
30 |
var n; |
|
31 |
if(e.currentTarget) n=e.currentTarget; // Mozilla/Safari/w3c |
|
32 |
else if(window.event) n=window.event.srcElement; // IE |
|
33 |
else return; |
|
34 |
|
|
35 |
if(n.id && document._callbacks_by_id[n.id]) |
|
36 |
for(var i=0; i<document._callbacks_by_id[n.id].length; i++) |
|
37 |
document._callbacks_by_id[n.id][i](e); |
|
38 |
} |
|
39 |
} |