[英]Show Hide function in JavaScript
我想用一個 javascript 函數打開和關閉這些列表。
我不想為每個列表編寫多個 javascript 函數。
我能怎么做? 以上是我的代碼
$(document).ready(function(){ $(".close").click(function(){ $(".content").toggle("slow"); }); });
.close {padding:0 5px;margin-left:10px;cursor:pointer;}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div> Contents <span class="close">hide</span> <div class="content"> <ul> <li><a href="">link</a></li> <li><a href="">link</a></li> <li><a href="">link</a></li> <li><a href="">link</a></li> <li><a href="">link</a></li> <li><a href="">link</a></li> <li><a href="">link</a></li> </ul> </div> </div> <div> Contents <span class="close">hide</span> <div class="content"> <ul> <li><a href="">link</a></li> <li><a href="">link</a></li> <li><a href="">link</a></li> <li><a href="">link</a></li> <li><a href="">link</a></li> <li><a href="">link</a></li> <li><a href="">link</a></li> </ul> </div> </div>
您可以使用jQuery
函數next()在span
旁邊的element
上切換(隱藏)
在 jQuery 中, $(this)
指的是我們clicked
的element
,然后我們得到next()
元素,它是你的.content
類來緩慢切換。
這邊走。 您必須一次又一次地編寫code
。
現場演示:
$(document).ready(function() { $(".close").click(function() { $(this).next().toggle("slow"); }); });
.close { padding: 0 5px; margin-left: 10px; cursor: pointer; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div> Contents<span class="close">hide</span> <div class="content"> <ul> <li><a href="">link</a></li> <li><a href="">link</a></li> <li><a href="">link</a></li> <li><a href="">link</a></li> <li><a href="">link</a></li> <li><a href="">link</a></li> <li><a href="">link</a></li> </ul> </div> </div> <div> Contents<span class="close">hide</span> <div class="content"> <ul> <li><a href="">link</a></li> <li><a href="">link</a></li> <li><a href="">link</a></li> <li><a href="">link</a></li> <li><a href="">link</a></li> <li><a href="">link</a></li> <li><a href="">link</a></li> </ul> </div> </div>
為了使每個列表單獨工作,必須有某種唯一標識符,以便 jQuery 知道單擊它時應該關閉哪個列表。
嘗試這樣的事情:
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div>
Contents<span class="close" data-target="#list-1">hide</span>
<div class="content" id="list-1">
<ul>
<li><a href="">link</a></li>
<li><a href="">link</a></li>
<li><a href="">link</a></li>
<li><a href="">link</a></li>
<li><a href="">link</a></li>
<li><a href="">link</a></li>
<li><a href="">link</a></li>
</ul>
</div>
</div>
<div>
Contents<span class="close" data-target="list-2">hide</span>
<div class="content" id="list-2">
<ul>
<li><a href="">link</a></li>
<li><a href="">link</a></li>
<li><a href="">link</a></li>
<li><a href="">link</a></li>
<li><a href="">link</a></li>
<li><a href="">link</a></li>
<li><a href="">link</a></li>
</ul>
</div>
</div>
$(document).ready(function(){
$(".close").click(function(){
var closeBtn = $(this)
$(closeBtn.data('target')).toggle("slow");
});
});
我認為您希望您的近距離跨度只是切換與它們相關的 div,或者? 在這種情況下,您可以像這樣修改您的 JS
$(document).ready(function(){
$(".close").click(function(){
$(this).next(".content").toggle("slow");
});
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.