簡體   English   中英

如何更改此Jquery函數(切換)

[英]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遍歷方法( nextparent等)都帶有一個可選的選擇器參數:

$(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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM