我正在尝试创建一个脚本,根据是否选择某个选项来管理内容的可见性。我遇到的问题是,我的if/else语句不能正常运行。
当最后一个.radial-container
单选按钮被选中时,它显示了div .provider-info
。"我想保留我的电话号码")。
当类.select
从父容器中移除时,它应该是slideUp
,但它没有。
我做了一些实验,用一段不同的代码获得了我想要的功能:
$(function() {
$('.radial-container').on('click', function() {
$(this).addClass('select').siblings().removeClass('select');
if($('.radial-container').last().hasClass('select')) {
$(this).children('.provider-info').slideDown(300);
} else {
$('.provider-info').slideUp(300);
}
})
})
但是上面的片段的问题是它只适用于无限制的第2行。无限制的第一行基本上失去了功能。
我如何修复这段代码,以获得if/else语句正常工作?我只希望div .provider-info
是可见的,当第二个单选按钮被选中。
谢谢,
- m
$(function() {
$('.radial-container').on('click', function() {
$(this).addClass('select').siblings().removeClass('select');
if($('.radial-container').hasClass('select')) {
$(this).children('.provider-info').slideDown(300);
} else {
$('.provider-info').slideUp(300);
}
})
})
.phn-option-container {
display:block;
}
.phn-unl {
position:relative;
margin:40px 0;
}
.phn-unl:after {
content:'';
display:block;
position:relative;
background:#e8e8e8;
height:1px;
top:30px;
clear:both;
}
.radial-container {
display:block;
cursor: pointer;
clear:both;
}
.phn-radio-container {
margin:10px;
clear:both;
}
.phn-unl > h4 {
position:relative;
left:10px;
font-weight:600;
color:#22ddc0;
}
.radial-container p {
position:relative;
float:left;
left:25px;
top:17px;
color:#787878;
}
.radial-container.select .phn-radial .phn-center-dot {
display:block;
}
.phn-radial {
position:relative;
float:left;
height:35px;
width:35px;
padding:2px;
margin:10px 0;
border:5px solid #e8e8e8;
border-radius:50%;
left:10px;
clear:both;
cursor:pointer;
}
.phn-center-dot {
display:none;
position:relative;
height:21px;
width:21px;
background-color:#E16E5B;
border-radius:50%;
}
.provider-info label {
color:#787878;
margin:25px 0 0 60px;
}
.provider-info label span {
position:relative;
color:#E16E5B;
top:-3px;
}
.provider-info input {
background-color:transparent;
border-width:0 0 2px;
border-color:#787878;
border-radius:0;
margin-left:10px;
width:270px;
font-size:16px;
}
::-webkit-input-placeholder {
font-style: italic;
}
:-moz-placeholder {
font-style: italic;
}
::-moz-placeholder {
font-style: italic;
}
:-ms-input-placeholder {
font-style: italic;
}
.provider-info input:focus {
border-color:#22ddc0;
outline:0;
}
.provider-info {
display:none;
clear:both;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
<div class="phn-option-container">
<div class="phn-unl" data-unl-line="1">
<h4>Unlimited Line 1</h4>
<div class="radial-container select">
<div class="phn-radial">
<div class="phn-center-dot"></div>
</div>
<p>I would like a <strong>new</strong> number</p>
</div>
<div class="radial-container">
<div class="phn-radial">
<div class="phn-center-dot"></div>
</div>
<p>I would like to <strong>keep</strong> my number</p>
<div class="provider-info">
<div>
<label>Current Number: <span>*</span></label>
<input type="text" placeholder="e.g. (555) 555-5555"/>
</div>
<div>
<label>Current Provider: <span>*</span></label>
<input type="text" placeholder="e.g. Verizon"/>
</div>
</div>
</div>
</div>
<div class="phn-unl" data-unl-line="2">
<h4>Unlimited Line 2</h4>
<div class="radial-container select">
<div class="phn-radial">
<div class="phn-center-dot"></div>
</div>
<p>I would like a <strong>new</strong> number</p>
</div>
<div class="radial-container">
<div class="phn-radial">
<div class="phn-center-dot"></div>
</div>
<p>I would like to <strong>keep</strong> my number</p>
<div class="provider-info">
<div>
<label>Current Number: <span>*</span></label>
<input type="text" placeholder="e.g. (555) 555-5555"/>
</div>
<div>
<label>Current Provider: <span>*</span></label>
<input type="text" placeholder="e.g. Verizon"/>
</div>
</div>
</div>
</div>
</div>
这应该可以完成工作:
$('.radial-container').on('click', function() {
$(this).addClass('select')
.siblings('.radial-container')
.removeClass('select')
.find('.provider-info')
.slideUp(300);
$('.provider-info', this).slideDown(300);
});
固定演示:$(function() {
$('.radial-container').on('click', function() {
$(this).addClass('select')
.siblings('.radial-container')
.removeClass('select')
.find('.provider-info')
.slideUp(300);
$('.provider-info', this).slideDown(300);
});
});
.phn-option-container {
display:block;
}
.phn-unl {
position:relative;
margin:40px 0;
}
.phn-unl:after {
content:'';
display:block;
position:relative;
background:#e8e8e8;
height:1px;
top:30px;
clear:both;
}
.radial-container {
display:block;
cursor: pointer;
clear:both;
}
.phn-radio-container {
margin:10px;
clear:both;
}
.phn-unl > h4 {
position:relative;
left:10px;
font-weight:600;
color:#22ddc0;
}
.radial-container p {
position:relative;
float:left;
left:25px;
top:17px;
color:#787878;
}
.radial-container.select .phn-radial .phn-center-dot {
display:block;
}
.phn-radial {
position:relative;
float:left;
height:35px;
width:35px;
padding:2px;
margin:10px 0;
border:5px solid #e8e8e8;
border-radius:50%;
left:10px;
clear:both;
cursor:pointer;
}
.phn-center-dot {
display:none;
position:relative;
height:21px;
width:21px;
background-color:#E16E5B;
border-radius:50%;
}
.provider-info label {
color:#787878;
margin:25px 0 0 60px;
}
.provider-info label span {
position:relative;
color:#E16E5B;
top:-3px;
}
.provider-info input {
background-color:transparent;
border-width:0 0 2px;
border-color:#787878;
border-radius:0;
margin-left:10px;
width:270px;
font-size:16px;
}
::-webkit-input-placeholder {
font-style: italic;
}
:-moz-placeholder {
font-style: italic;
}
::-moz-placeholder {
font-style: italic;
}
:-ms-input-placeholder {
font-style: italic;
}
.provider-info input:focus {
border-color:#22ddc0;
outline:0;
}
.provider-info {
display:none;
clear:both;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
<div class="phn-option-container">
<div class="phn-unl" data-unl-line="1">
<h4>Unlimited Line 1</h4>
<div class="radial-container select">
<div class="phn-radial">
<div class="phn-center-dot"></div>
</div>
<p>I would like a <strong>new</strong> number</p>
</div>
<div class="radial-container">
<div class="phn-radial">
<div class="phn-center-dot"></div>
</div>
<p>I would like to <strong>keep</strong> my number</p>
<div class="provider-info">
<div>
<label>Current Number: <span>*</span></label>
<input type="text" placeholder="e.g. (555) 555-5555"/>
</div>
<div>
<label>Current Provider: <span>*</span></label>
<input type="text" placeholder="e.g. Verizon"/>
</div>
</div>
</div>
</div>
<div class="phn-unl" data-unl-line="2">
<h4>Unlimited Line 2</h4>
<div class="radial-container select">
<div class="phn-radial">
<div class="phn-center-dot"></div>
</div>
<p>I would like a <strong>new</strong> number</p>
</div>
<div class="radial-container">
<div class="phn-radial">
<div class="phn-center-dot"></div>
</div>
<p>I would like to <strong>keep</strong> my number</p>
<div class="provider-info">
<div>
<label>Current Number: <span>*</span></label>
<input type="text" placeholder="e.g. (555) 555-5555"/>
</div>
<div>
<label>Current Provider: <span>*</span></label>
<input type="text" placeholder="e.g. Verizon"/>
</div>
</div>
</div>
</div>
</div>
你想要使用(美元)。else块里也有孩子吗?
$(this).children('.provider-info').slideDown(300);
} else {
$(this).children('.provider-info').slideUp(300);