Jquery改变CSS类点击
Jquery change CSS class on clicking
我正在做一个项目,我有一些锚,比如标签,每个都有一些CSS类,所选的标签有单独的CSS类。我点击标签,我想改变它的CSS类选择的CSS类我已经完成了这个功能,但我有一些问题,它是以前选择的标签也有相同的类,我怎么能改变以前选择的标签未选择的类,下面是我的代码
$(".btn").each(function ()
{
$(this).click(function () {
$(this).removeClass("course-btn-tab").addClass("course-btn-tab-selected");
});
});
<div class="course-Search-tabs">
<a href="#" class="course-btn-tab-selected btn" id="a">A</a>
<a href="#" class="course-btn-tab btn" id="b">B</a>
<a href="#" class="course-btn-tab btn" id="c">C</a>
<a href="#" class="course-btn-tab" id="d">D</a>
</div>
您不需要在这里使用each
,在具有btn
类的元素的click
上删除具有btn
类的所有元素的类,并将所需的类分配给当前元素(referred by $(this)
),这是事件源。另外,我假设您想从前面的元素中删除选定的类。
$(".btn").click(function () {
if($(this).hasClass("course-btn-tab-selected"))
$(".btn").removeClass("course-btn-tab-selected").addClass("course-btn-tab");
$(this).addClass("course-btn-tab-selected");
});
Edit:您可以通过保留最后选择的元素并更改它的类来改善这一点。
previouslyClicked = $(".btn").eq(0); //Assuming first tab is selected by default
$(".btn").click(function () {
previouslyClicked.removeClass("course-btn-tab-selected").addClass("course-btn-tab");
$(this).addClass("course-btn-tab-selected");
previouslyClicked = $(this);
});
$.each()
的错误用法
这样使用:
$(".btn").click(function () {
$(".btn").removeClass("course-btn-tab-selected");
$(this).addClass("course-btn-tab-selected");
});
应该可以做到:
$(".btn").click(function () {
$(".course-btn-tab-selected").removeClass("course-btn-tab-selected").addClass('course-btn-tab');
$(this).removeClass('course-btn-tab').addClass("course-btn-tab-selected");
});
还有另一种方法:
$(".btn").click(function (e) {
e.preventDefault();
$(this).siblings().removeClass("course-btn-tab-selected").addClass('course-btn-tab');
$(this).addClass("course-btn-tab-selected");
});
首先你需要使用jQuery选择器绑定一个点击事件到"btn" CSS类,这将允许你一次操作所有的按钮。
下一步找到先前选中的按钮,删除选中的类并添加常规类。
最后从所单击的按钮中删除常规类,并添加所选类。
$('.btn').bind('click', function () {
var previouslySelectedButton = $('.course-btn-tab-selected');
var selectedButton = $(this);
if (previouslySelectedButton)
previouslySelectedButton.removeClass('course-btn-tab-selected').addClass('course-btn-tab');
selectedButton.removeClass('course-btn-tab').addClass('course-btn-tab-selected');
});
这里有一个使用HTML的工作示例:jsFiddle
相关文章:
- CSS或JS-当输入被聚焦时,改变输入的背景颜色
- 纯JavaScript中的Onclick滑块 - 事件不会改变CSS值
- HTML 按钮到大/CSS 不改变大小
- JavaScript 如果不是改变 CSS 的青春期
- CSS在IMG周围添加一个胖“框架”,而不改变IMG的位置
- JavaScript:任何改变CSS伪:before和:after的机会或替代方案
- JavaScript 可以改变@page CSS 的值吗?
- 为什么使用 grunt-contrib-cssmin 会改变我的 css,而它应该只缩小它
- AngularJS:重置angular.元素CSS改变
- 麻烦的CSS改变滑块上的开始位置
- 如何在不影响其他模态的情况下用CSS改变模态的宽度?
- 可以'不要用CSS改变表格中文本的颜色
- CSS改变样式/动画样式使用类或javascript
- Jquery/Javascript在CSS改变后只运行一次自定义函数
- jQuery/CSS -改变CSS类悬停的元素相同的href
- 拖,CSS改变后,Drop脚本开始崩溃
- 使用jQuery/javascript/css改变flash视频对象的属性
- 用CSS改变DOM元素顺序(鳄鱼)
- 如何动态地添加一个类到li项目,并使用javascript和css改变它的背景颜色
- 下拉选择器使用JS和CSS改变DIV的颜色