[英]How can I change this Jquery function (toggle)
<head>
<script type="text/javascript">
$(document).ready(function(){
$(".open_list").hide();
$(".trigger").click(function(){
$(this).toggleClass("active").next().slideToggle("800");
});
});
</script>
我正在做一個列表,里面有一些隱藏的div,我做了這個jquery函數來做到這一點。 事實是,此函數使您在單擊觸發器鏈接時將向您顯示open_list之后的div。
我正在尋找另一個函數,該函數允許我執行相同的操作,但該函數可激活.open_list之后的div,但具有確定的類。
因此,它將忽略open_list之后沒有該類的div。
我一直在做這件事,我找不到正確的方法去做。 有人知道嗎?
所以我把腳本:
<script type="text/javascript">
$(document).ready(function(){
$(".open_list").hide();
$(".trigger").click(function(){
$(this).toggleClass("active").nextAll('.campaigns_list').slideToggle("800");
});
});
但仍然不起作用。 我需要打開div時h1完全不移動。
您可以使用由選擇器過濾的nextAll()
,然后獲取該列表的first()
元素:
$(".trigger").click(function(){
$(this).toggleClass("active").nextAll('.yourClass').first().slideToggle("800");
});
您可能遇到的問題是,如果執行next('.yourClass')
如果下一個兄弟姐妹不是.youClass
兄弟姐妹,則不會返回任何元素
大多數jQuery遍歷方法( next
, parent
等)都帶有一個可選的選擇器參數:
$(this).nextAll('.someclass').first().slideToggle(800);
此代碼將選擇具有someclass
類的元素的someclass
,並執行slideToggle
動畫。
這真的很簡單-只是不使用next()而是nextAll()
<script type="text/javascript">
$(document).ready(function(){
$(".open_list").hide();
$(".trigger").click(function(){
$(this).toggleClass("active").nextAll('.yourClass').slideToggle("800");
});
});
</script>
如果只想選擇一個元素,請在.nextAll()函數后附加“ .eq(0)”。
希望我能幫到你。 最好的問候,雅各布。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.