3 回答

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超5個(gè)贊
classList.toggle()是大多數(shù)瀏覽器的標(biāo)準(zhǔn)配置和支持。
較舊的瀏覽器可以將use classlist.js用于classList.toggle():
var menu = document.querySelector('.menu') // Using a class instead, see note below.
menu.classList.toggle('hidden-phone');
順便說(shuō)一句,您不應(yīng)該使用ID(它們會(huì)將全局變量泄漏到JS window對(duì)象中)。

TA貢獻(xiàn)1830條經(jīng)驗(yàn) 獲得超3個(gè)贊
看一下這個(gè)例子:JS Fiddle
function toggleClass(element, className){
if (!element || !className){
return;
}
var classString = element.className, nameIndex = classString.indexOf(className);
if (nameIndex == -1) {
classString += ' ' + className;
}
else {
classString = classString.substr(0, nameIndex) + classString.substr(nameIndex+className.length);
}
element.className = classString;
}

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超4個(gè)贊
這也適用于IE的早期版本。
function toogleClass(ele, class1) {
var classes = ele.className;
var regex = new RegExp('\\b' + class1 + '\\b');
var hasOne = classes.match(regex);
class1 = class1.replace(/\s+/g, '');
if (hasOne)
ele.className = classes.replace(regex, '');
else
ele.className = classes + class1;
}
.red {
background-color: red
}
div {
width: 100px;
height: 100px;
margin-bottom: 10px;
border: 1px solid black;
}
<div class="does red redAnother " onclick="toogleClass(this, 'red')"></div>
<div class="does collapse navbar-collapse " onclick="toogleClass(this, 'red')"></div>
添加回答
舉報(bào)