我有这个很棒的功能,可以像我想要的那样用纯javascript切换类:
// hasClass
function hasClass(elem, className) {
return new RegExp(' ' + className + ' ').test(' ' + elem.className + ' ');
}
// toggleClass
function toggleClass(elem, className) {
var newClass = ' ' + elem.className.replace( /[\t\r\n]/g, " " ) + ' ';
if (hasClass(elem, className)) {
while (newClass.indexOf(" " + className + " ") >= 0 ) {
newClass = newClass.replace( " " + className + " " , " " );
}
elem.className = newClass.replace(/^\s+|\s+$/g, '');
} else {
elem.className += ' ' + className;
}
}
document.getElementById('button').onclick = function() {
toggleClass(this, 'active');
}
我尝试通过删除此部分将其转换为内联onclick功能:
document.getElementById('button').onclick = function() {
toggleClass(this, 'active');
}
并添加:
onclick="toggleClass(this, 'active')"
对于我的元素,但是我想我做错了并且它根本不起作用。
有什么想法吗?
答案 0 :(得分:1)
猜测,toggleClass
不是全球性的。 onXyz
属性事件处理程序只能访问全局函数。这是不使用它们的几个原因之一。
答案 1 :(得分:0)