2017-10-21 87 views
3

我試圖在互聯網上搜索解決方案,但我還沒有發現任何有用的東西。我正在構建一個TwitchTV應用程序(FreeCodeCamp挑戰),我想做出類似這樣的事情:如果狀態爲在線(.online),我可以點擊它並通過流信息將面板(.slide)滑動如果我再次點擊,然後向上。
(編輯:
爲了澄清:我與同班的幾個元素,但想要的目標只有一個我點擊的兄弟姐妹)
的問題是,的slideToggle上升和下降了幾次(這個數字取決於元素的不同),我不知道爲什麼。我只能猜測它是與類和next():jQuery slideToggle發瘋 - 爲什麼?

$(".online").on("click", function() { 
    $(this).next(".slide").slideToggle("slow"); 
}); 

你能幫一點?是什麼讓這個面板像瘋了一樣上下滑動?你有關於如何使這項工作的一些提示?
我codepen是https://codepen.io/Strzesia/pen/PJVjbR/

回答

1

使用$(this).nextUntil('.slide').next().slideToggle("slow");

$(".online").on("click", function() { 
 
    $(this).nextUntil('.slide').next().slideToggle("slow"); 
 
});
.slide{width:400px;height:100px;background-color:pink;margin:5px;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="online">click</div> 
 
<div></div> 
 
<div></div> 
 
<div class="slide"></div> 
 

 
<div class="online">click</div> 
 
<div></div> 
 
<div class="slide"></div>

+0

這將在不同的環境下也許有效,但問題是,我有一個「在線」類和幾個要素與「幻燈片」類相同數量的元素。無論使用next()還是nextAll(),「slide」元素都會上下滑動。 – Strzesia

+0

我編輯的代碼。請再試一次 –

+0

我想我的代碼有問題,因爲你的答案在這裏有效,但不在我的codepen上。無論如何感謝您的幫助! – Strzesia