我用我的代码http://jsfiddle.net/yp9v5/1/
制作了这个jfiddle我正在尝试向打开的选项卡添加一个类(类设置为第一个在页面加载时打开的选项卡,然后在单击时切换到另一个选项卡)。我希望能够以不同方式设置活动标签的样式。
我尝试过使用addClass,但我认为我没有正确使用它来将类添加到活动标签中。
这是我使用的jQuery:
jQuery(".alt_block_wrapper .ac-container div label").click(function() {
jQuery(".alt_block_wrapper .ac-container div article").css("display", "none");
jQuery(this).parent().find("article").fadeIn("slow");
jQuery(this).addClass("ac-active");
});
jQuery(".alt_block_wrapper .ac-container div article").css("display", "none");
jQuery(".alt_block_wrapper .ac-container div article").first().css("display", "block");
和html:
<div class="alt_block_wrapper one-third">
<section class="ac-container">
<div>
<input id="ac-1412" name="accordion-1412" type="radio" checked />
<label for="ac-1412">First Tab</label>
<article class="ac-medium">
<p>Nostraaptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p>
</article>
</div>
<div>
<input id="ac-2412" name="accordion-1412" type="radio" />
<label for="ac-2412">Second Tab</label>
<article class="ac-medium">
<p>Nostraaptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p>
</article>
</div>
<div>
<input id="ac-3412" name="accordion-1412" type="radio" />
<label for="ac-3412">Third Tab</label>
<article class="ac-medium">
<p>Nostraaptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p>
</article>
</div>
<div>
<input id="ac-4412" name="accordion-1412" type="radio" />
<label for="ac-4412">Fourth Tab</label>
<article class="ac-medium">
<p>Nostraaptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p>
</article>
</div>
<div>
<input id="ac-5412" name="accordion-1412" type="radio" />
<label for="ac-5412">Fifth Tab</label>
<article class="ac-medium">
<p>Nostraaptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p>
</article>
</div>
</section>
答案 0 :(得分:1)
您的问题主要是由于Css的特殊性。是的,您已经在应用该类,但它被label
上应用的另一个规则覆盖,该规则无论如何都会覆盖.classname
规则。所以你的syle没有得到应用。
将此添加到您的规则
label.ac-active {
border-color:red;
}
而不是
.ac-active {
border-color:red; // if you add !important then it will work too, but not recommended to use that when you have a way to resolve it without it.
}
在剧本中:
// Remove class from other tab which is already active and apply to the current tab.
jQuery('.ac-active').not(jQuery(this).addClass("ac-active")).removeClass('ac-active');
而不是
jQuery(this).addClass("ac-active");
在您的情况下,.ac-container label{
应用的边框颜色会覆盖应用于类.ac-active
的标签上的规则。此外,上述脚本将从之前选择的任何选项卡ac-active
类中删除该类。
答案 1 :(得分:1)
以下是示例:Demo
你需要改变“交流”的css增加他的体重:
.ac-container label.ac-active {border-color:red;}
更新的脚本:
mainElement= ".alt_block_wrapper .ac-container div";
$(mainElement).find("article").css("display", "none").first().css("display", "block").prev().addClass('ac-active');
$(mainElement).find("label").click(function() {
$this=$(this);
$(mainElement).find("article").hide(); // Hide all Elements
$(mainElement).find("label").removeClass('ac-active'); // Hide all Elements
$this.addClass('ac-active').parent().find("article").fadeIn("slow"); //current parent element
});