我的大脑完全融化了,但是我不记得如何在点击事件中如何使特定的div执行jQuery slideDown
。
这就是我一直在尝试的事情:
$('.content--link').on('click', function(e) {
$(this).next('.content').slideToggle();
e.preventDefault();
});
body {
padding: 20px;
}
.content {
display: none;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="group">
<div class="link">
<a class="content--link" href="#">Click this 1</a>
</div>
<div class="content">
<p>This is the content to show for 1</p>
</div>
</div>
<div class="group">
<div class="link">
<a class="content--link" href="#">Click this 2</a>
</div>
<div class="content">
<p>This is the content to show for 2</p>
</div>
</div>
我之前已经做过,但是我不确定我做错了什么。我认为我可能需要遍历然后再下移.parents
吗?无论如何,这已经是一天了。
答案 0 :(得分:4)
几乎使用$(this).parent().next('.content')
。
.next()在这种情况下不能单独工作,因为它会立即获得匹配元素集中每个元素的同级兄弟。 content--link
没有兄弟姐妹,但它的父母(div.link)有。
答案 1 :(得分:2)
您缺少parent()
。在parent
之前使用next
切换下一个格。
$('.content--link').on('click', function(e) {
$(this).parent().next('.content').slideToggle();
e.preventDefault();
});
body {
padding: 20px;
}
.content {
display: none;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="group">
<div class="link">
<a class="content--link" href="#">Click this 1</a>
</div>
<div class="content">
<p>This is the content to show for 1</p>
</div>
</div>
<div class="group">
<div class="link">
<a class="content--link" href="#">Click this 2</a>
</div>
<div class="content">
<p>This is the content to show for 2</p>
</div>
</div>
答案 2 :(得分:2)
只需尝试添加parent()
$(this).parent().next('.content').slideToggle();
答案 3 :(得分:0)
您只需使用Bootstrap即可实现此目的,只需尝试以下代码即可。
<html>
<head>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container">
<br>
<a href="#" data-toggle="collapse" data-target="#demo">Item #1</a>
<div id="demo" class="collapse">
Collapsible Group Item #1
</div>
<br> <br>
<a href="#" data-toggle="collapse" data-target="#demo1">Item #2</a>
<div id="demo1" class="collapse">
Collapsible Group Item #2
</div>
<br> <br>
<a href="#" data-toggle="collapse" data-target="#demo3">Item #3</a>
<div id="demo3" class="collapse">
Collapsible Group Item #3
</div>
</div>
</body>
</html>