原生js addclass,hasClass,removeClass,toggleClass的兼容
2024-09-21 07:13:31
(function (window) { 'use strict'; // class helper functions from bonzo https://github.com/ded/bonzo function 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 once
var 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
}; // transport
if (typeof define === 'function' && define.amd) {
// AMD
define(classie);
} else {
// browser global
window.classie = classie;
} })(window);
经测试,兼容IE8以下;
参考:https://github.com/ded/bonzo,
最新文章
- php中redis的安装
- (有趣)chrome不同浏览器版本对display:flex和溢出隐藏显示省略符号的bug
- 常用到的git,mvn,postgres,vim命令总结
- 转载:Cocos2D-x 游戏接入 Windows 设备所需做的六件事
- Helpers\SimpleCurl
- 《鸟哥的Linux私房菜》读书笔记三
- Top 12 Best Free Network Monitoring Tools (12种免费网络监控工具)
- svn笔记
- CodeForces 371C Hamburgers
- 《Shell十三问》笔记(上)
- SrpingDruid数据源加密数据库密码
- java linux 项目经常无故被关闭 进程无故消息
- 1_01 vue的双向绑定
- (转)以太坊(Ethereum)全零地址(0x000000...)揭秘
- c# 利用MailKit.IMap 收取163邮件
- [UE4]函数和事件的区别
- Structs复习 ActionMethod
- Actor模型---SwiftActors
- MikroTik RouterOS x86最大内存只能支持2G
- ACdream原创群赛__15