Published in: JavaScript
**************************************************************** ** Toggle ClassName ** Works on els with multiple classnames *****************************************************************/ toggleClassname: function (el, newClassname, defaultClassname) { if (this.hasClass( el, defaultClassname)){ var re = new RegExp("(^|\\s)" + defaultClassname + "(\\s|$)"); el.className = el.className.replace(re, ' '+ newClassname +' '); } else if ( CB.iCanHasClass( el, newClassname)){ var re = new RegExp("(^|\\s)" + newClassname + "(\\s|$)"); el.className = el.className.replace(re, ' '+ defaultClassname +' '); //alert(el.className); } else { el.className += ' ' + newClassname; } }, /**************************************************************** ** [I Can] Has Class? (Matt Kruse) ****************************************************************/ /* ** Kruse's hasClass, with slight modification ** Determine if an object or class string contains a given class. ** see http://groups.google.com/group/comp.lang.javascript/browse_thread/thread/b68cac304ee6de78/e445c1df18698a3f?lnk=gst&q=hasclass&rnum=3 */ hasClass : function(obj, className) { if (typeof obj == 'undefined' || obj==null || !RegExp) { return false; } //should I be checking all my objects for undefined? I feel like it never comes up --N.S. at 9:51:57 PM EST on Wednesday, July 18 2007 var re = new RegExp("(^|\\s)" + className + "(\\s|$)"); if (typeof(obj)=="string") { return re.test(obj); } else if (typeof(obj)=="object" && obj.className) { return re.test(obj.className); } return false; }
You need to login to post a comment.
