2016-05-08 08:14:40 +02:00
|
|
|
import {root} from './root';
|
|
|
|
|
2014-11-22 09:06:08 +01:00
|
|
|
/**
|
|
|
|
* DOM event utilities
|
|
|
|
*/
|
|
|
|
|
2015-05-30 14:23:33 +02:00
|
|
|
export default {
|
2015-04-06 11:21:49 +02:00
|
|
|
add(obj, type, func, capture){
|
2014-11-23 11:31:55 +01:00
|
|
|
if(obj.addEventListener){
|
|
|
|
obj.addEventListener(type, func, capture);
|
2014-11-22 09:06:08 +01:00
|
|
|
}
|
2014-11-23 11:31:55 +01:00
|
|
|
else if(obj.attachEvent){
|
|
|
|
obj.attachEvent('on'+type, func);
|
|
|
|
} else {
|
2014-11-22 09:06:08 +01:00
|
|
|
obj['on'+type] = func;
|
|
|
|
}
|
|
|
|
},
|
2015-04-06 11:21:49 +02:00
|
|
|
remove(obj, type, func, capture){
|
2014-11-22 09:06:08 +01:00
|
|
|
if(obj.detachEvent){
|
|
|
|
obj.detachEvent('on'+type,func);
|
|
|
|
}
|
|
|
|
else if(obj.removeEventListener){
|
2014-11-23 11:31:55 +01:00
|
|
|
obj.removeEventListener(type, func, capture);
|
2014-11-22 09:06:08 +01:00
|
|
|
} else {
|
|
|
|
obj['on'+type] = null;
|
|
|
|
}
|
|
|
|
},
|
2015-04-06 11:21:49 +02:00
|
|
|
stop(evt){
|
2014-11-22 09:06:08 +01:00
|
|
|
if(!evt){
|
2016-05-08 08:14:40 +02:00
|
|
|
evt = root.event;
|
2014-11-22 09:06:08 +01:00
|
|
|
}
|
|
|
|
if(evt.stopPropagation){
|
|
|
|
evt.stopPropagation();
|
|
|
|
} else {
|
|
|
|
evt.cancelBubble = true;
|
|
|
|
}
|
|
|
|
},
|
2015-04-06 11:21:49 +02:00
|
|
|
cancel(evt){
|
2014-11-22 09:06:08 +01:00
|
|
|
if(!evt){
|
2016-05-08 08:14:40 +02:00
|
|
|
evt = root.event;
|
2014-11-22 09:06:08 +01:00
|
|
|
}
|
|
|
|
if(evt.preventDefault) {
|
|
|
|
evt.preventDefault();
|
|
|
|
} else {
|
|
|
|
evt.returnValue = false;
|
|
|
|
}
|
2015-04-06 11:21:49 +02:00
|
|
|
},
|
2015-04-20 09:20:28 +02:00
|
|
|
target(evt){
|
2016-05-08 08:14:40 +02:00
|
|
|
return (evt && evt.target) || (root.event && root.event.srcElement);
|
2015-04-20 09:20:28 +02:00
|
|
|
},
|
2015-04-06 11:21:49 +02:00
|
|
|
keyCode(evt){
|
|
|
|
return evt.charCode ? evt.charCode :
|
|
|
|
(evt.keyCode ? evt.keyCode: (evt.which ? evt.which : 0));
|
2014-11-22 09:06:08 +01:00
|
|
|
}
|
|
|
|
};
|