当我使用 Jquery 单击它时如何更改按钮 class?
how to change button class when i click on it using Jquery?
所以我使用 Jquery 尝试更改 bootstrap 按钮 类 当我使用 toggleClass
单击它们时但问题是我只能在它们之间切换只有 2 类 而 不是我想要的 ,我想在至少 5 类 甚至更多之间切换每次点击按钮,都找不到方法
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8" />
<title>toggle</title>
<link
rel="stylesheet"
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"
/>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
</head>
<script>
$(document).ready(function () {
$("button").click(function () {
$(this).toggleClass("btn btn-success btn btn-info btn btn-primary");
});
});
</script>
<style>
#p {
position: absolute;
top: 50%;
left: 50%;
}
</style>
<body>
<button id="p" class="btn btn-success">Random button</button>
</body>
</html>
您可以在每次单击按钮时增加一个计数器,并根据计数添加一个 class。 0 = 绿色,1 = 红色。切换仅用于在两种状态之间切换,就像物理切换一样
你可以把所有你想申请的class放在一个数组里,把当前申请的class的数组索引存到一个变量里或者用jQuery的.data()
方法。
然后,每当单击按钮时,您检索并增加索引以获得下一个 class 并将其应用于按钮。试试这个
$(document).ready(function () {
var classes = ['btn-success', 'btn-info', 'btn-primary'];
$("button").click(function(){
let idx = $(this).data('class-index') ?? 0; // index of the currently applied class
let cls = classes[idx+1] ?? classes[0]; // get the next class
$(this).data('class-index', classes.indexOf(cls)); // store the class index
$(this).removeClass(classes).addClass(cls); // remove old class and apply new one
});
});
button { outline: none!important; }
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
<button id="p" class="btn btn-success">Random button</button>
所以我使用 Jquery 尝试更改 bootstrap 按钮 类 当我使用 toggleClass
单击它们时但问题是我只能在它们之间切换只有 2 类 而 不是我想要的 ,我想在至少 5 类 甚至更多之间切换每次点击按钮,都找不到方法
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8" />
<title>toggle</title>
<link
rel="stylesheet"
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"
/>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
</head>
<script>
$(document).ready(function () {
$("button").click(function () {
$(this).toggleClass("btn btn-success btn btn-info btn btn-primary");
});
});
</script>
<style>
#p {
position: absolute;
top: 50%;
left: 50%;
}
</style>
<body>
<button id="p" class="btn btn-success">Random button</button>
</body>
</html>
您可以在每次单击按钮时增加一个计数器,并根据计数添加一个 class。 0 = 绿色,1 = 红色。切换仅用于在两种状态之间切换,就像物理切换一样
你可以把所有你想申请的class放在一个数组里,把当前申请的class的数组索引存到一个变量里或者用jQuery的.data()
方法。
然后,每当单击按钮时,您检索并增加索引以获得下一个 class 并将其应用于按钮。试试这个
$(document).ready(function () {
var classes = ['btn-success', 'btn-info', 'btn-primary'];
$("button").click(function(){
let idx = $(this).data('class-index') ?? 0; // index of the currently applied class
let cls = classes[idx+1] ?? classes[0]; // get the next class
$(this).data('class-index', classes.indexOf(cls)); // store the class index
$(this).removeClass(classes).addClass(cls); // remove old class and apply new one
});
});
button { outline: none!important; }
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
<button id="p" class="btn btn-success">Random button</button>