Dom class helper

来源:互联网 发布:淘宝网服务中心电话 编辑:程序博客网 时间:2024/04/20 10:49

在网页开发中我们经常会操作一个 dom 节点的 class 属性。比如:addClass, hasClass, removeClass, toggleClass。今天在github 上面找了一段代码来处理这个问题。特此记录下:

/*! * classie v1.0.1 * class helper functions * from bonzo https://github.com/ded/bonzo * MIT license *  * classie.has( elem, 'my-class' ) -> true/false * classie.add( elem, 'my-new-class' ) * classie.remove( elem, 'my-unwanted-class' ) * classie.toggle( elem, 'my-class' ) *//*jshint browser: true, strict: true, undef: true, unused: true *//*global define: false, module: false */( function( window ) {// class helper functions from bonzo https://github.com/ded/bonzofunction classReg( className ) {  return new RegExp("(^|\\s+)" + className + "(\\s+|$)");}// classList support for class management// altho to be fair, the api sucks because it won't accept multiple classes at oncevar hasClass, addClass, removeClass;if ( 'classList' in document.documentElement ) {  hasClass = function( elem, c ) {    return elem.classList.contains( c );  };  addClass = function( elem, c ) {    elem.classList.add( c );  };  removeClass = function( elem, c ) {    elem.classList.remove( c );  };}else {  hasClass = function( elem, c ) {    return classReg( c ).test( elem.className );  };  addClass = function( elem, c ) {    if ( !hasClass( elem, c ) ) {      elem.className = elem.className + ' ' + c;    }  };  removeClass = function( elem, c ) {    elem.className = elem.className.replace( classReg( c ), ' ' );  };}function toggleClass( elem, c ) {  var fn = hasClass( elem, c ) ? removeClass : addClass;  fn( elem, c );}var classie = {  // full names  hasClass: hasClass,  addClass: addClass,  removeClass: removeClass,  toggleClass: toggleClass,  // short names  has: hasClass,  add: addClass,  remove: removeClass,  toggle: toggleClass};// transportif ( typeof define === 'function' && define.amd ) {  // AMD  define( 'classie/classie',classie );} else if ( typeof exports === 'object' ) {  // CommonJS  module.exports = classie;} else {  // browser global  window.classie = classie;}})( window );
0 0
原创粉丝点击