We Recommend

Pro JavaScript Techniques Pro JavaScript Techniques
Pro JavaScript Techniques is the ultimate JavaScript book for the modern web developer. It provides everything you need to know about modern JavaScript, and shows what JavaScript can do for your web sites. This book doesn't waste any time looking at things you already know, like basic syntax and structures.


Posted By

noah on 07/20/07


Tagged

css toggle library DOM name conditional binary className utilities mattkruse hasclass


Versions (?)


toggle classname


Published in: JavaScript 


  1. ****************************************************************
  2. ** Toggle ClassName
  3. ** Works on els with multiple classnames
  4. *****************************************************************/
  5. toggleClassname: function (el, newClassname, defaultClassname) {
  6. if (this.hasClass( el, defaultClassname)){
  7. var re = new RegExp("(^|\\s)" + defaultClassname + "(\\s|$)");
  8. el.className = el.className.replace(re, ' '+ newClassname +' ');
  9. } else if ( CB.iCanHasClass( el, newClassname)){
  10. var re = new RegExp("(^|\\s)" + newClassname + "(\\s|$)");
  11. el.className = el.className.replace(re, ' '+ defaultClassname +' ');
  12. //alert(el.className);
  13. } else {
  14. el.className += ' ' + newClassname;
  15. }
  16. },
  17.  
  18. /****************************************************************
  19.   ** [I Can] Has Class? (Matt Kruse)
  20.   ****************************************************************/
  21. /*
  22.  ** Kruse's hasClass, with slight modification
  23.  ** Determine if an object or class string contains a given class.
  24.  ** see http://groups.google.com/group/comp.lang.javascript/browse_thread/thread/b68cac304ee6de78/e445c1df18698a3f?lnk=gst&q=hasclass&rnum=3
  25.  */
  26. hasClass : function(obj, className) {
  27. 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
  28. var re = new RegExp("(^|\\s)" + className + "(\\s|$)");
  29. if (typeof(obj)=="string") {
  30. return re.test(obj);
  31. }
  32. else if (typeof(obj)=="object" && obj.className) {
  33. return re.test(obj.className);
  34. }
  35. return false;
  36. }

Report this snippet 

You need to login to post a comment.