Skip to content

Instantly share code, notes, and snippets.

@baamenabar
Last active August 29, 2015 14:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save baamenabar/7cf7201566a0b9216ada to your computer and use it in GitHub Desktop.
Save baamenabar/7cf7201566a0b9216ada to your computer and use it in GitHub Desktop.
Common useful functions for JavaScript
var Common = {
addEvent : function(ele, evType, fn, useCapture) {
if (ele.addEventListener) {
ele.addEventListener(evType, fn, useCapture);
return true;
}else if (ele.attachEvent) {
var r = ele.attachEvent('on' + evType, fn);
return r;
} else {
ele['on' + evType] = fn;
}
},
removeEvent : function(ele, evType, fn, useCapture) {
if (ele.removeEventListener) {
ele.removeEventListener(evType, fn, useCapture);
return true;
}else if (ele.detachEvent) {
var r = ele.detachEvent('on' + evType, fn);
return r;
} else {
ele['on' + evType] = null;
}
},
findPos : function(obj) {
var curleft = 0;
var curtop = 0;
if (obj.offsetParent) {
do {
curleft += obj.offsetLeft;
curtop += obj.offsetTop;
} while (obj = obj.offsetParent);
return [curleft,curtop];
}
},
getScrollTop : function(){
if(typeof pageYOffset!= 'undefined'){
//most browsers except IE before #9
return pageYOffset;
}
else{
var B= document.body; //IE 'quirks'
var D= document.documentElement; //IE with doctype
D= (D.clientHeight)? D: B;
return D.scrollTop;
}
},
//FROM: http://www.openjs.com/scripts/dom/class_manipulation.php
hasClass : function(ele,cls) {
return ele.className.match(new RegExp('(\\s|^)'+cls+'(\\s|$)'));
},
addClass : function(ele,cls) {
if (! this.hasClass(ele,cls)) ele.className += " "+cls;
},
removeClass : function(ele,cls) {
if (this.hasClass(ele,cls)) {
var reg = new RegExp('(\\s|^)'+cls+'(\\s|$)');
ele.className=ele.className.replace(reg,' ');
}
}
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment