隐藏和更改 Jquery 中的 div 个元素
Hiding and changing div elements in Jquery
大家好,我需要你的帮助,我在网页上有两个按钮,当单击 button1 时,它下方会出现一个箭头,并且按钮的背景颜色会发生变化,当单击 button2 时,同样适用,但 button1 下方的箭头消失并且背景颜色改变。
我已经实现了其中的大部分属性,但我不明白为什么在单击 button2 后返回到 button1,button2 下方的箭头没有隐藏。
这是我的代码
++++++++ HTML +++++++
$(document).ready(function() {
$('#select').click(function(){
$(this).css('background','#1169ff');
$(this).css('color','#ecf0f1');
$('#triangle_down').add('#triangle_down1').show();
if($('#select1').css('background','#1169ff') && $('#select1').css('color','#ecf0f1')){
$('#select1').css('background','#ecf0f1');
$('#select1').css('color','#1169ff');
} else if($('#triangle_down2').add('#triangle_down3').addClass('hidden')){
$('#triangle_down').add('#triangle_down1').show();
}
});
$('#select1').on('click', function() {
$(this).css('background','#1169ff');
$(this).css('color','#ecf0f1');
$('#triangle_down').add('#triangle_down1').addClass('hidden');
$('#select').css('background','#ecf0f1');
$('#select').css('color','#1169ff');
$('#triangle_down2').add('#triangle_down3').show();
});
})
#subscribe p{
text-align:center;
}
#subscribe input {
background: rgba(255, 255, 255, 0.52);
color: #666666;
vertical-align: middle;
width: 593px;
border: 1px solid rgba(255, 255, 255, 0.76);
padding: 0 10px;
height: 60px;
font-size: 20px;
outline: 0;
}
#subscribe input[type="submit"]{
background: rgb(255, 135, 19);
color: #ecf0f1;
/*width: auto;*/
padding: 14px 25px;
cursor: pointer;
margin-left: 50px
font-weight: bold;
height: 60px;
display: inline-block;
border: 2px solid;
font-size: 20px;
outline: 0;
}
#subscribe button[id="select"],[id="select1"]{
background: #ecf0f1;
width: 370px;
height: 60px;
/*padding-left: 100px;*/
/*padding-right: 100px;*/
padding: 0 10px;
vertical-align: middle;
font-size: 20px;
outline: 0;
color: #1169ff;
border: 2px solid;
text-align:center;
}
#subscribe input[id="main"] {
width: 150px;
outline: 0;
}
#triangle_down {
position:absolute;
width: 0;
height: 0;
border-top: 15px solid #1169ff;
border-left: 9px solid transparent;
border-right: 9px solid transparent;
top:125px;
left:90px;
}
#triangle_down1 {
position:absolute;
width: 0;
height: 0;
border-top: 20px solid #ecf0f1;
border-left: 11px solid transparent;
border-right: 11px solid transparent;
top:125px;
left:88px;
}
#triangle_down3 {
position:absolute;
width: 0;
height: 0;
border-top: 15px solid #1169ff;
border-left: 9px solid transparent;
border-right: 9px solid transparent;
top:125px;
left:464px;
}
#triangle_down2 {
position:absolute;
width: 0;
height: 0;
border-top: 20px solid #ecf0f1;
border-left: 11px solid transparent;
border-right: 11px solid transparent;
top:125px;
left:462px;
}
<div id="subscribe">
<form action="" method="post" onsubmit="">
<p>
<button type="button" id="select">Acheter</button>
<button type="button" id="select1">Louer</button>
</p>
<!-- Using 2 traingles to achieve border outline :) -->
<i id="triangle_down1" style="display: none"><i></i></i>
<i id="triangle_down" style="display: none"><i></i></i><br/>
<!--Louer triangles -->
<i id="triangle_down2" style="display: none"><i></i></i>
<i id="triangle_down3" style="display: none"><i></i></i><br/>
<div></div>
<p><input name="" placeholder="Entrer une ville au Maroc" type="text" id="landing-entry"/>
<a href="/results"> <input type="submit" id="main" value="Search"/></a>
</p>
</form>
谢谢
这样做了,请查看 jquery 切换或其他方法,因为您的代码在现场很难使用。添加$('#triangle_down2').add('#triangle_down3').hide();
在第一次点击f
$(document).ready(function() {
$('#select').click(function(){
$(this).css('background','#1169ff');
$(this).css('color','#ecf0f1');
$('#triangle_down').add('#triangle_down1').show();
if($('#select1').css('background','#1169ff') && $('#select1').css('color','#ecf0f1')){
$('#select1').css('background','#ecf0f1');
$('#select1').css('color','#1169ff');
$('#triangle_down2').add('#triangle_down3').hide();
} else if($('#triangle_down2').add('#triangle_down3').addClass('hidden')){
$('#triangle_down').add('#triangle_down1').show();
}
});
$('#select1').on('click', function() {
$(this).css('background','#1169ff');
$(this).css('color','#ecf0f1');
$('#triangle_down').add('#triangle_down1').hide();
$('#select').css('background','#ecf0f1');
$('#select').css('color','#1169ff');
$('#triangle_down2').add('#triangle_down3').show();
});
})
#subscribe p{
text-align:center;
}
#subscribe input {
background: rgba(255, 255, 255, 0.52);
color: #666666;
vertical-align: middle;
width: 593px;
border: 1px solid rgba(255, 255, 255, 0.76);
padding: 0 10px;
height: 60px;
font-size: 20px;
outline: 0;
}
#subscribe input[type="submit"]{
background: rgb(255, 135, 19);
color: #ecf0f1;
/*width: auto;*/
padding: 14px 25px;
cursor: pointer;
margin-left: 50px
font-weight: bold;
height: 60px;
display: inline-block;
border: 2px solid;
font-size: 20px;
outline: 0;
}
#subscribe button[id="select"],[id="select1"]{
background: #ecf0f1;
width: 370px;
height: 60px;
/*padding-left: 100px;*/
/*padding-right: 100px;*/
padding: 0 10px;
vertical-align: middle;
font-size: 20px;
outline: 0;
color: #1169ff;
border: 2px solid;
text-align:center;
}
#subscribe input[id="main"] {
width: 150px;
outline: 0;
}
#triangle_down {
position:absolute;
width: 0;
height: 0;
border-top: 15px solid #1169ff;
border-left: 9px solid transparent;
border-right: 9px solid transparent;
top:125px;
left:90px;
}
#triangle_down1 {
position:absolute;
width: 0;
height: 0;
border-top: 20px solid #ecf0f1;
border-left: 11px solid transparent;
border-right: 11px solid transparent;
top:125px;
left:88px;
}
#triangle_down3 {
position:absolute;
width: 0;
height: 0;
border-top: 15px solid #1169ff;
border-left: 9px solid transparent;
border-right: 9px solid transparent;
top:125px;
left:464px;
}
#triangle_down2 {
position:absolute;
width: 0;
height: 0;
border-top: 20px solid #ecf0f1;
border-left: 11px solid transparent;
border-right: 11px solid transparent;
top:125px;
left:462px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="subscribe">
<form action="" method="post" onsubmit="">
<p>
<button type="button" id="select">Acheter</button>
<button type="button" id="select1">Louer</button>
</p>
<!-- Using 2 traingles to achieve border outline :) -->
<i id="triangle_down1" style="display: none"><i></i></i>
<i id="triangle_down" style="display: none"><i></i></i><br/>
<!--Louer triangles -->
<i id="triangle_down2" style="display: none"><i></i></i>
<i id="triangle_down3" style="display: none"><i></i></i><br/>
<div></div>
<p><input name="" placeholder="Entrer une ville au Maroc" type="text" id="landing-entry"/>
<a href="/results"> <input type="submit" id="main" value="Search"/></a>
</p>
</form>
主要问题是您在使用 .show()
的同时使用了 .addClass('hidden')
jQuery 在显示、隐藏和切换时有点变化无常,但它们在 display: hidden
或 display: show
的元素上施加了内联样式。您的 class 'hidden' 被 jQuery.
放置的内嵌样式覆盖
显示和隐藏内容时要保持一致。要么使用线型,例如 'hidden' 或 'shown' 的 adding/removing classes,要么使用 .show()
、.hide()
和 .toggle()
函数来自 jQuery.
我清理了代码,并将其全部放在 jsfiddle 中。希望这有助于https://jsfiddle.net/agayn7yn/
您没有隐藏三角形 div,您只是添加了一个 class 'hidden',它实际上并没有应用任何 css 属性。
而不是 addClass('hidden')
你想使用 hide()
这将使用内联样式 show/hide div 确保最高级别的 css 特异性
大家好,我需要你的帮助,我在网页上有两个按钮,当单击 button1 时,它下方会出现一个箭头,并且按钮的背景颜色会发生变化,当单击 button2 时,同样适用,但 button1 下方的箭头消失并且背景颜色改变。
我已经实现了其中的大部分属性,但我不明白为什么在单击 button2 后返回到 button1,button2 下方的箭头没有隐藏。
这是我的代码
++++++++ HTML +++++++
$(document).ready(function() {
$('#select').click(function(){
$(this).css('background','#1169ff');
$(this).css('color','#ecf0f1');
$('#triangle_down').add('#triangle_down1').show();
if($('#select1').css('background','#1169ff') && $('#select1').css('color','#ecf0f1')){
$('#select1').css('background','#ecf0f1');
$('#select1').css('color','#1169ff');
} else if($('#triangle_down2').add('#triangle_down3').addClass('hidden')){
$('#triangle_down').add('#triangle_down1').show();
}
});
$('#select1').on('click', function() {
$(this).css('background','#1169ff');
$(this).css('color','#ecf0f1');
$('#triangle_down').add('#triangle_down1').addClass('hidden');
$('#select').css('background','#ecf0f1');
$('#select').css('color','#1169ff');
$('#triangle_down2').add('#triangle_down3').show();
});
})
#subscribe p{
text-align:center;
}
#subscribe input {
background: rgba(255, 255, 255, 0.52);
color: #666666;
vertical-align: middle;
width: 593px;
border: 1px solid rgba(255, 255, 255, 0.76);
padding: 0 10px;
height: 60px;
font-size: 20px;
outline: 0;
}
#subscribe input[type="submit"]{
background: rgb(255, 135, 19);
color: #ecf0f1;
/*width: auto;*/
padding: 14px 25px;
cursor: pointer;
margin-left: 50px
font-weight: bold;
height: 60px;
display: inline-block;
border: 2px solid;
font-size: 20px;
outline: 0;
}
#subscribe button[id="select"],[id="select1"]{
background: #ecf0f1;
width: 370px;
height: 60px;
/*padding-left: 100px;*/
/*padding-right: 100px;*/
padding: 0 10px;
vertical-align: middle;
font-size: 20px;
outline: 0;
color: #1169ff;
border: 2px solid;
text-align:center;
}
#subscribe input[id="main"] {
width: 150px;
outline: 0;
}
#triangle_down {
position:absolute;
width: 0;
height: 0;
border-top: 15px solid #1169ff;
border-left: 9px solid transparent;
border-right: 9px solid transparent;
top:125px;
left:90px;
}
#triangle_down1 {
position:absolute;
width: 0;
height: 0;
border-top: 20px solid #ecf0f1;
border-left: 11px solid transparent;
border-right: 11px solid transparent;
top:125px;
left:88px;
}
#triangle_down3 {
position:absolute;
width: 0;
height: 0;
border-top: 15px solid #1169ff;
border-left: 9px solid transparent;
border-right: 9px solid transparent;
top:125px;
left:464px;
}
#triangle_down2 {
position:absolute;
width: 0;
height: 0;
border-top: 20px solid #ecf0f1;
border-left: 11px solid transparent;
border-right: 11px solid transparent;
top:125px;
left:462px;
}
<div id="subscribe">
<form action="" method="post" onsubmit="">
<p>
<button type="button" id="select">Acheter</button>
<button type="button" id="select1">Louer</button>
</p>
<!-- Using 2 traingles to achieve border outline :) -->
<i id="triangle_down1" style="display: none"><i></i></i>
<i id="triangle_down" style="display: none"><i></i></i><br/>
<!--Louer triangles -->
<i id="triangle_down2" style="display: none"><i></i></i>
<i id="triangle_down3" style="display: none"><i></i></i><br/>
<div></div>
<p><input name="" placeholder="Entrer une ville au Maroc" type="text" id="landing-entry"/>
<a href="/results"> <input type="submit" id="main" value="Search"/></a>
</p>
</form>
谢谢
这样做了,请查看 jquery 切换或其他方法,因为您的代码在现场很难使用。添加$('#triangle_down2').add('#triangle_down3').hide();
在第一次点击f
$(document).ready(function() {
$('#select').click(function(){
$(this).css('background','#1169ff');
$(this).css('color','#ecf0f1');
$('#triangle_down').add('#triangle_down1').show();
if($('#select1').css('background','#1169ff') && $('#select1').css('color','#ecf0f1')){
$('#select1').css('background','#ecf0f1');
$('#select1').css('color','#1169ff');
$('#triangle_down2').add('#triangle_down3').hide();
} else if($('#triangle_down2').add('#triangle_down3').addClass('hidden')){
$('#triangle_down').add('#triangle_down1').show();
}
});
$('#select1').on('click', function() {
$(this).css('background','#1169ff');
$(this).css('color','#ecf0f1');
$('#triangle_down').add('#triangle_down1').hide();
$('#select').css('background','#ecf0f1');
$('#select').css('color','#1169ff');
$('#triangle_down2').add('#triangle_down3').show();
});
})
#subscribe p{
text-align:center;
}
#subscribe input {
background: rgba(255, 255, 255, 0.52);
color: #666666;
vertical-align: middle;
width: 593px;
border: 1px solid rgba(255, 255, 255, 0.76);
padding: 0 10px;
height: 60px;
font-size: 20px;
outline: 0;
}
#subscribe input[type="submit"]{
background: rgb(255, 135, 19);
color: #ecf0f1;
/*width: auto;*/
padding: 14px 25px;
cursor: pointer;
margin-left: 50px
font-weight: bold;
height: 60px;
display: inline-block;
border: 2px solid;
font-size: 20px;
outline: 0;
}
#subscribe button[id="select"],[id="select1"]{
background: #ecf0f1;
width: 370px;
height: 60px;
/*padding-left: 100px;*/
/*padding-right: 100px;*/
padding: 0 10px;
vertical-align: middle;
font-size: 20px;
outline: 0;
color: #1169ff;
border: 2px solid;
text-align:center;
}
#subscribe input[id="main"] {
width: 150px;
outline: 0;
}
#triangle_down {
position:absolute;
width: 0;
height: 0;
border-top: 15px solid #1169ff;
border-left: 9px solid transparent;
border-right: 9px solid transparent;
top:125px;
left:90px;
}
#triangle_down1 {
position:absolute;
width: 0;
height: 0;
border-top: 20px solid #ecf0f1;
border-left: 11px solid transparent;
border-right: 11px solid transparent;
top:125px;
left:88px;
}
#triangle_down3 {
position:absolute;
width: 0;
height: 0;
border-top: 15px solid #1169ff;
border-left: 9px solid transparent;
border-right: 9px solid transparent;
top:125px;
left:464px;
}
#triangle_down2 {
position:absolute;
width: 0;
height: 0;
border-top: 20px solid #ecf0f1;
border-left: 11px solid transparent;
border-right: 11px solid transparent;
top:125px;
left:462px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="subscribe">
<form action="" method="post" onsubmit="">
<p>
<button type="button" id="select">Acheter</button>
<button type="button" id="select1">Louer</button>
</p>
<!-- Using 2 traingles to achieve border outline :) -->
<i id="triangle_down1" style="display: none"><i></i></i>
<i id="triangle_down" style="display: none"><i></i></i><br/>
<!--Louer triangles -->
<i id="triangle_down2" style="display: none"><i></i></i>
<i id="triangle_down3" style="display: none"><i></i></i><br/>
<div></div>
<p><input name="" placeholder="Entrer une ville au Maroc" type="text" id="landing-entry"/>
<a href="/results"> <input type="submit" id="main" value="Search"/></a>
</p>
</form>
主要问题是您在使用 .show()
.addClass('hidden')
jQuery 在显示、隐藏和切换时有点变化无常,但它们在 display: hidden
或 display: show
的元素上施加了内联样式。您的 class 'hidden' 被 jQuery.
显示和隐藏内容时要保持一致。要么使用线型,例如 'hidden' 或 'shown' 的 adding/removing classes,要么使用 .show()
、.hide()
和 .toggle()
函数来自 jQuery.
我清理了代码,并将其全部放在 jsfiddle 中。希望这有助于https://jsfiddle.net/agayn7yn/
您没有隐藏三角形 div,您只是添加了一个 class 'hidden',它实际上并没有应用任何 css 属性。
而不是 addClass('hidden')
你想使用 hide()
这将使用内联样式 show/hide div 确保最高级别的 css 特异性