在第一个版本中,如果在匹配的元素集合中的每个元素上存在该样式类就会被移除;如果某个元素没有这个样式类就会加上这个样式类。举个例子: 我们可以应用 .toggleClass() 在简单的 <div>上:
<div class="tumble">Some text.</div>
第一次我们应用 $('div.tumble').toggleClass('bounce'), 我们可以得到以下内容:
<div class="tumble bounce">Some text.</div>
第二次我能同样应用 $('div.tumble').toggleClass('bounce'), 这个 <div> 样式类回归到单独的 tumble 值:
<div class="tumble">Some text.</div>
应用 .toggleClass('bounce spin')在同一个 <div> 上,结果会在 <div class="tumble bounce spin"> 和 <div class="tumble">之间交替切换。
.toggleClass()的第二个版本使用第二个参数判断样式类是否应该被添加或删除。如果这个参数的值是true,那么这个样式类将被添加;如果这个参数的值是false,那么这个样式类将被移除。本质上是这样的:
$('#foo').toggleClass(className, addOrRemove);
等价于:
if (addOrRemove) {
$('#foo').addClass(className);
}
else {
$('#foo').removeClass(className);
}
从 jQuery 1.4 开始, 如果不将任何参数传递给 .toggleClass() 方法,那么匹配元素上的所有样式会在该方法第一次执行时被移除,第二次执行时被还原,如此往复。同样的,从 jQuery 1.4 开始,可以用一个函数作为参数,返回应该显示的样式:
$('div.foo').toggleClass(function() {
if ($(this).parent().is('.bar')) {
return 'happy';
} else {
return 'sad';
}
});
|