切换CSS类每次用户点击- Jquery
Switch CSS class everytime user clicks - Jquery
我有两个不同的CSS类链接。每次用户点击时,我如何在两者之间进行切换?
<a class="class1" id="class1">Class1</a>
<a class="class2" id="class2">Class2</a>
它只是工作一次,但当我点击第二次,它不工作:
$("#class1").click(function(){
$("#class1").removeClass().addClass("class2");
$("#class2").removeClass().addClass("class1");
})
$("#class2").click(function(){
$("#class1").removeClass().addClass("class2");
$("#class2").removeClass().addClass("class1");
})
CSS是用来改变颜色的
方法做同样的事情。您为两个标记设置了相同的类,这就是为什么它只在第一次工作。第二次它只是重置当前类。他们不应该是这样的吗?
$("#class1").click(function(){
$("#class1").removeClass().addClass("class2");
$("#class2").removeClass().addClass("class1");
})
$("#class2").click(function(){
$("#class1").removeClass().addClass("class1");
$("#class2").removeClass().addClass("class2");
})
可以使用toggleClass切换多个类。
$('.red,.blue').click(function() {
$(this).toggleClass('red blue');
});
.red { background-color:red }
.blue { background-color:blue }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="red">One</div>
<div class="blue">Blue</div>
您可以使用选择器"[class^=class]"
来选择Element.className
以"class"开头的元素;使用.slice()
和参数0, -1
来选择字符串中的字符,直到最后一个字符;使用==
相等运算符检查最后一个字符是否为1
或2
;设置匹配1
: "2"
, 2
: "1"
的最后一个字符与Element.className
的最后一个字符相反
$("[class^=class]").click(function() {
var c = this.className;
this.className = c.slice(0, -1) + (c[c.length - 1] == 1 ? 2 : 1);
});
.class1 {
color: blue;
}
.class2 {
color: green;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a class="class1" id="class1">Class1</a>
<a class="class2" id="clas2">Class2</a>
使用toggleClass JSFIDDLE:https://jsfiddle.net/kameeshwaran/5puecqeq/完成
HTML:<a class="class1" id="class1">Class1</a>
<a class="class1" id="class2">Class2</a>
JS
$(document).ready(function(){
$(".class1").click(function(e){
e.preventDefault();
$(this).toggleClass("class2")
});
});
CSS: .class1{
background-color:green;
}
.class2{
background-color:red;
}
当您点击一次class1
时,它将从class1
中删除class1
类,并将class2
放在上面。
但是,当您再次点击它时,因为class1
被设置为class2
类,所以它不会改变。
你应该这样做:
var class1check = 0;
$("#class1").click(function() {
if (class1check === 0) {
var addclass1 = "class2";
var addclass2 = "class1";
}
else {
var addclass1 = "class1";
var addclass2 = "class2";
class1check = 0;
}
$("#class1").removeClass().addClass(addclass1);
$("#class2").removeClass().addClass(addclass2);
});
相关文章:
- 如何使用jquery确定用户是否年满18岁
- 将jQuery转换为用户脚本的普通Javascript时遇到问题
- 是否可以仅通过jQuery将图像替换为用户动态选择的另一个图像
- 当用户点击动态创建的链接时,如何调用JS方法.JQuery,ASP.NET MVC
- jQuery:如何检测用户何时再次滚动到顶部
- 使用jQuery切换来显示内容,但防止在用户单击输入元素时关闭
- 防止用户在jQuery Mobile中ajax加载页面时单击其他位置
- jQuery根据用户选择启用/禁用asp.net控件
- 如何知道用户已经重新加载了网页,使用jquery.如果用户重新加载网页,
- 只要用户将鼠标悬停在jQuery中的某个元素上,就可以执行多次单击
- 有人知道有没有jquery插件可以在图像上写文本,并让用户将其放置在图像内的任何位置
- 如何防止用户使用javascript或jquery在链接中单击鼠标中键
- 使用jQuery获取用户坐标
- JavaScript/jQuery:显示DIV,直到用户停止在Textbox中键入
- 使用Jquery.click显示/隐藏切换,适用于新用户,但不适用于种子
- 计算jquery用户界面的拖放
- jQuery - 用户单击模式上的“是”按钮后返回到初始屏幕
- 什么是最好的方法来检查页面是否有jQuery, jQuery.用户界面,jQuery.ui.css
- javascript/jquery-用户关闭浏览器时的跨浏览器检测
- 如何使用AJAX进行适当的jQuery用户身份验证