基于以下功能的简单 javascript 解决方案是:
<a onmouseover="util.addClassName('main', 'tv-glow');"
onmouseout="util.removeClassName('main', 'tv-glow')"
href="...">test</a>
您可能更喜欢动态附加侦听器,并且还可以有一个“切换”功能来交换类进出。
请注意,悬停效果在触摸屏设备上毫无用处。
每个开发人员都应该在他们的工具箱中拥有的一些功能:
var util = util || {};
util.hasClassName = function(el, cName) {
if (typeof el == 'string') el = document.getElementById(el);
var re = new RegExp('(^|\\s+)' + cName + '(\\s+|$)');
return el && re.test(el.className);
}
util.addClassName = function(el, cName) {
if (typeof el == 'string') el = document.getElementById(el);
if (!util.hasClassName(el, cName)) {
el.className = el.className + ' ' + cName;
}
}
util.removeClassName = function(el, cName) {
if (typeof el == 'string') el = document.getElementById(el);
if (util.hasClassName(el, cName)) {
var re = new RegExp('(^|\\s+)' + cName + '(\\s+|$)','g');
el.className = el.className.replace(re, '');
}
}