我正在制作一个选项按钮(右上方的树点)。单击它时,必须显示选项。再次单击,隐藏选项。下面是我的代码,但它不起作用。你能看一下吗?
$("body").ready(function () {
$(document).on("click", ".options-knop", function() {
if (this.nextSibling.style.display == "none"){
this.nextSibling.style.display = 'block !important';
} else {
this.nextSibling.style.display = 'none';
}
});
});
.img-wrapper {
width: 100px;
height: 100px;
overflow: hidden;
border-radius: 100%;
float: left;
margin: 5px;
}
.img-container {
height: 100px;
}
.artist {
transition: background-color 0.5s, color 0.5s;
cursor: pointer;
}
.artist-outer {
margin: 5px 0;
padding: 10px 5px;
}
.artist .naam {
width: 190px;
}
.options-knop {
position: absolute;
top: 15px;
left: 325px;
text-align: center;
line-height: 30px;
font-weight: bold;
width: 30px;
height: 30px;
border-radius: 100%;
color: black !important;
transition: background-color 0.5s, color 0.5s;
}
.artist-outer:nth-child(6n+4),
.artist-outer:nth-child(6n+5),
.artist-outer:nth-child(6n+6) {
background-color: #eeeeee;
}
.artist:nth-child(6n+4) .options-knop,
.artist:nth-child(6n+5) .options-knop,
.artist:nth-child(6n+6) .options-knop {
background-color: white;
}
.artist:nth-child(6n+1) .options-knop,
.artist:nth-child(6n+2) .options-knop,
.artist:nth-child(6n+3) .options-knop {
background-color: #eeeeee;
}
.options-knop:hover{
background-color: #a3a3a3 !important;
color: white !important;
}
.artist-outer:hover{
background-color: #545454 !important;
color: white !important;
}
.options-list {
display: none;
position: absolute;
z-index: 1;
top: 50px;
left: 260px;
}
.options-list ul {
padding: 0;
}
.naam {
max-height: 40px;
overflow: hidden;
}
.list-group {
padding-left: 0;
margin-bottom: 20px
}
.list-group-item {
position: relative;
display: block;
padding: 10px 15px;
margin-bottom: -1px;
background-color: #fff;
border: 1px solid #ddd
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<div class='clearfix col-md-4 artist-outer' id='656556255'>
<div class='artist'>
<div class='artist-info'>
<div class='img-wrapper'>
<img style="width:100px" src='http://i.stack.imgur.com/kYnSM.gif'/>
</div>
<p class='naam'><b>Random naam</b></p>
<p>Volgers op Spotify: XXX</p>
</div>
<div class='options-knop'>...</div>
<div class='options-list list-group' style='display: none;'>
<a class='list-group-item'>Toon albums</a>
<a class='list-group-item'>Profiel</a>
</div>
</div>
</div>
答案 0 :(得分:1)
因为您正在使用JQuery,所以您可以使用 css() 功能:
if ( $(this).next().css('display') == "none")
$(this).next().show();
else
$(this).next().hide();
或者只是使用 toggle() 切换div show/hide
的显示而不使用条件:
$(this).next().toggle();
希望这有帮助。
答案 1 :(得分:1)
您可能想要使用jQuery.toggle
$(document).ready(function () {
$(document).on("click", ".options-knop", function() {
$(this.nextSibling).toggle( );
});
});
答案 2 :(得分:1)
$(document).ready(function () {
$('.options-knop').click(function (e)
{
$('.options-list').toggle();
});
});
&#13;
.img-wrapper {
width: 100px;
height: 100px;
overflow: hidden;
border-radius: 100%;
float: left;
margin: 5px;
}
.img-container {
height: 100px;
}
.artist {
transition: background-color 0.5s, color 0.5s;
cursor: pointer;
}
.artist-outer {
margin: 5px 0;
padding: 10px 5px;
}
.artist .naam {
width: 190px;
}
.options-knop {
position: absolute;
top: 15px;
left: 325px;
text-align: center;
line-height: 30px;
font-weight: bold;
width: 30px;
height: 30px;
border-radius: 100%;
color: black !important;
transition: background-color 0.5s, color 0.5s;
}
.artist-outer:nth-child(6n+4),
.artist-outer:nth-child(6n+5),
.artist-outer:nth-child(6n+6) {
background-color: #eeeeee;
}
.artist:nth-child(6n+4) .options-knop,
.artist:nth-child(6n+5) .options-knop,
.artist:nth-child(6n+6) .options-knop {
background-color: white;
}
.artist:nth-child(6n+1) .options-knop,
.artist:nth-child(6n+2) .options-knop,
.artist:nth-child(6n+3) .options-knop {
background-color: #eeeeee;
}
.options-knop:hover{
background-color: #a3a3a3 !important;
color: white !important;
}
.artist-outer:hover{
background-color: #545454 !important;
color: white !important;
}
.options-list {
display: none;
position: absolute;
z-index: 1;
top: 50px;
left: 260px;
}
.options-list ul {
padding: 0;
}
.naam {
max-height: 40px;
overflow: hidden;
}
.list-group {
padding-left: 0;
margin-bottom: 20px
}
.list-group-item {
position: relative;
display: block;
padding: 10px 15px;
margin-bottom: -1px;
background-color: #fff;
color:black;
border: 1px solid #ddd
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<div class='clearfix col-md-4 artist-outer' id='656556255'>
<div class='artist'>
<div class='artist-info'>
<div class='img-wrapper'>
<img style="width:100px" src='http://i.stack.imgur.com/kYnSM.gif'/>
</div>
<p class='naam'><b>Random naam</b></p>
<p>Volgers op Spotify: XXX</p>
</div>
<div class='options-knop'>...</div>
<div class='options-list list-group' style='display: none;'>
<a class='list-group-item'>Toon albums</a>
<a class='list-group-item'>Profiel</a>
</div>
</div>
</div>
&#13;
答案 3 :(得分:1)
首先,对我来说,如果不需要,我不想将jquery与纯Javascript混合
在你的代码中使用
$(document).ready();
而不是
$("body").ready
并使用
$("body").on();
而不是
$(document).on()
要使用jquery获取下一个元素,你需要使用 .next(); ..所以jquery代码应该是这样的
$(document).ready(function () {
$("body").on("click", ".options-knop", function() {
$(this).next('.options-list').slideToggle();
});
});