如何使用 jQuery 在单选按钮上添加内容开关?
How to add a content switch on radio buttons with jQuery?
我想通过单选按钮切换 HTML 文件中的内容。
在我的例子中,我有一个三向单选按钮,它应该显示 div 或 HTML 代码的一部分,并在按下时隐藏其他两个。任何人都可以帮我吗?我附上了我的单选按钮在 HTML 中的样子,也许有人可以告诉我 jQuery 方式如何寻找切换 div 或部分。提前致谢!
jsFiddle: https://jsfiddle.net/Lk5dwrt2/
<div class="toggle_radio">
<input type="radio" class="toggle_option" id="first_toggle" name="toggle_option">
<input type="radio" checked class="toggle_option" id="second_toggle" name="toggle_option">
<input type="radio" class="toggle_option" id="third_toggle" name="toggle_option">
<label for="first_toggle"><p>SCORE</p></label>
<label for="second_toggle"><p>CLOCK</p></label>
<label for="third_toggle"><p>CONFIG</p></label>
<div class="toggle_option_slider">
</div>
</div>
<div class="contentScore">
<p>
This is content 1
</p>
</div>
<div class="contentClock">
<p>
This is content 2
</p>
</div>
<div class="contentConfig">
<p>
This is content 3
</p>
</div>
*{
margin:0px;
padding:0px;
}
.toggle_radio{
position: relative;
border:1.5px solid #58B947;
margin: 15px auto;
overflow: hidden;
padding: 0 !important;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
position: relative;
height: 28px;
}
.toggle_radio > * {
float: left;
}
.toggle_radio input[type=radio]{
display: none;
}
.toggle_radio label{
font:"Lato Light";
color: black;
display: block;
width: 100px;
height: 20px;
margin: 3px 3px;
cursor: pointer;
text-align: center;
}
.toggle_option_slider{
z-index: -1;
width: 33%;
height: 120%;
position: absolute;
-webkit-transition: all .4s ease;
-moz-transition: all .4s ease;
-o-transition: all .4s ease;
-ms-transition: all .4s ease;
transition: all .4s ease;
}
#first_toggle:checked ~ .toggle_option_slider{
background: #58B947;
left: 0px;
}
#second_toggle:checked ~ .toggle_option_slider{
background: #58B947;
left: 108.5px;
}
#third_toggle:checked ~ .toggle_option_slider{
background: #58B947;
left: 218px;
}
这是可行的做法之一。使用 jQuery 会更容易,但您必须添加一些 类 和属性来帮助解决这个问题。
(function($) {
switch_content();
$('input.toggle_option').on('click', function() {
switch_content();
});
function switch_content(content) {
$('.content').hide(0);
$('.'+$('input.toggle_option:checked').data('content')).show(0);
}
})(jQuery);
*{
margin:0px;
padding:0px;
}
.toggle_radio{
position: relative;
border:1.5px solid #58B947;
margin: 15px auto;
overflow: hidden;
padding: 0 !important;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
position: relative;
height: 28px;
}
.toggle_radio > * {
float: left;
}
.toggle_radio input[type=radio]{
display: none;
}
.toggle_radio label{
font:"Lato Light";
color: black;
display: block;
width: 100px;
height: 20px;
margin: 3px 3px;
cursor: pointer;
text-align: center;
}
.toggle_option_slider{
z-index: -1;
width: 33%;
height: 120%;
position: absolute;
-webkit-transition: all .4s ease;
-moz-transition: all .4s ease;
-o-transition: all .4s ease;
-ms-transition: all .4s ease;
transition: all .4s ease;
}
#first_toggle:checked ~ .toggle_option_slider{
background: #58B947;
left: 0px;
}
#second_toggle:checked ~ .toggle_option_slider{
background: #58B947;
left: 108.5px;
}
#third_toggle:checked ~ .toggle_option_slider{
background: #58B947;
left: 218px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="toggle_radio">
<input type="radio" class="toggle_option" id="first_toggle" name="toggle_option" data-content="contentScore">
<input type="radio" checked class="toggle_option" id="second_toggle" name="toggle_option" data-content="contentClock">
<input type="radio" class="toggle_option" id="third_toggle" name="toggle_option" data-content="contentConfig">
<label for="first_toggle"><p>SCORE</p></label>
<label for="second_toggle"><p>CLOCK</p></label>
<label for="third_toggle"><p>CONFIG</p></label>
<div class="toggle_option_slider">
</div>
</div>
<div class="content contentScore">
<p>
This is content 1
</p>
</div>
<div class="content contentClock">
<p>
This is content 2
</p>
</div>
<div class="content contentConfig">
<p>
This is content 3
</p>
</div>
我想通过单选按钮切换 HTML 文件中的内容。 在我的例子中,我有一个三向单选按钮,它应该显示 div 或 HTML 代码的一部分,并在按下时隐藏其他两个。任何人都可以帮我吗?我附上了我的单选按钮在 HTML 中的样子,也许有人可以告诉我 jQuery 方式如何寻找切换 div 或部分。提前致谢!
jsFiddle: https://jsfiddle.net/Lk5dwrt2/
<div class="toggle_radio">
<input type="radio" class="toggle_option" id="first_toggle" name="toggle_option">
<input type="radio" checked class="toggle_option" id="second_toggle" name="toggle_option">
<input type="radio" class="toggle_option" id="third_toggle" name="toggle_option">
<label for="first_toggle"><p>SCORE</p></label>
<label for="second_toggle"><p>CLOCK</p></label>
<label for="third_toggle"><p>CONFIG</p></label>
<div class="toggle_option_slider">
</div>
</div>
<div class="contentScore">
<p>
This is content 1
</p>
</div>
<div class="contentClock">
<p>
This is content 2
</p>
</div>
<div class="contentConfig">
<p>
This is content 3
</p>
</div>
*{
margin:0px;
padding:0px;
}
.toggle_radio{
position: relative;
border:1.5px solid #58B947;
margin: 15px auto;
overflow: hidden;
padding: 0 !important;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
position: relative;
height: 28px;
}
.toggle_radio > * {
float: left;
}
.toggle_radio input[type=radio]{
display: none;
}
.toggle_radio label{
font:"Lato Light";
color: black;
display: block;
width: 100px;
height: 20px;
margin: 3px 3px;
cursor: pointer;
text-align: center;
}
.toggle_option_slider{
z-index: -1;
width: 33%;
height: 120%;
position: absolute;
-webkit-transition: all .4s ease;
-moz-transition: all .4s ease;
-o-transition: all .4s ease;
-ms-transition: all .4s ease;
transition: all .4s ease;
}
#first_toggle:checked ~ .toggle_option_slider{
background: #58B947;
left: 0px;
}
#second_toggle:checked ~ .toggle_option_slider{
background: #58B947;
left: 108.5px;
}
#third_toggle:checked ~ .toggle_option_slider{
background: #58B947;
left: 218px;
}
这是可行的做法之一。使用 jQuery 会更容易,但您必须添加一些 类 和属性来帮助解决这个问题。
(function($) {
switch_content();
$('input.toggle_option').on('click', function() {
switch_content();
});
function switch_content(content) {
$('.content').hide(0);
$('.'+$('input.toggle_option:checked').data('content')).show(0);
}
})(jQuery);
*{
margin:0px;
padding:0px;
}
.toggle_radio{
position: relative;
border:1.5px solid #58B947;
margin: 15px auto;
overflow: hidden;
padding: 0 !important;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
position: relative;
height: 28px;
}
.toggle_radio > * {
float: left;
}
.toggle_radio input[type=radio]{
display: none;
}
.toggle_radio label{
font:"Lato Light";
color: black;
display: block;
width: 100px;
height: 20px;
margin: 3px 3px;
cursor: pointer;
text-align: center;
}
.toggle_option_slider{
z-index: -1;
width: 33%;
height: 120%;
position: absolute;
-webkit-transition: all .4s ease;
-moz-transition: all .4s ease;
-o-transition: all .4s ease;
-ms-transition: all .4s ease;
transition: all .4s ease;
}
#first_toggle:checked ~ .toggle_option_slider{
background: #58B947;
left: 0px;
}
#second_toggle:checked ~ .toggle_option_slider{
background: #58B947;
left: 108.5px;
}
#third_toggle:checked ~ .toggle_option_slider{
background: #58B947;
left: 218px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="toggle_radio">
<input type="radio" class="toggle_option" id="first_toggle" name="toggle_option" data-content="contentScore">
<input type="radio" checked class="toggle_option" id="second_toggle" name="toggle_option" data-content="contentClock">
<input type="radio" class="toggle_option" id="third_toggle" name="toggle_option" data-content="contentConfig">
<label for="first_toggle"><p>SCORE</p></label>
<label for="second_toggle"><p>CLOCK</p></label>
<label for="third_toggle"><p>CONFIG</p></label>
<div class="toggle_option_slider">
</div>
</div>
<div class="content contentScore">
<p>
This is content 1
</p>
</div>
<div class="content contentClock">
<p>
This is content 2
</p>
</div>
<div class="content contentConfig">
<p>
This is content 3
</p>
</div>