簡體   English   中英

jQuery停止功能運行兩次

[英]jQuery stop function running twice

我正在使用 slideUp / down 來顯示和隱藏內容並將其寫入其中,當打開另一個內容時它將關閉任何可見內容。 這一直有效,直到我嘗試通過單擊關閉內容,它會立即再次打開它。

HTML

<ul class="contents">
   <li>
      while($results->fetch()){
          <div class="details">text</div>
          <div class="more_details">more text</div>
      }
   </li>
</ul>

jQuery

$("#results").on("click", ".details", function() {
    $(".open").slideUp(600, function() {
        $(".open").css("display", "none").removeClass("open");
    });

    if ($(this).hasClass("open")) {
        $(this).slideUp( 600, function() {
            $(this).css("display", "none").removeClass("open");
        });
    } else {
        $(this).next(".more_details").slideDown(600, function() {
            $(this).css("display", "show").addClass("open");
        });
    }   
});

在向下滑動代碼中,您正在處理下一個同級more_details ,在向上滑動代碼中,您正在處理this元素。

 $("#results").on("click", ".details", function() { var $details = $(this).next(".more_details"); $details.slideToggle(600, function() { $details.toggleClass("open"); }); $(".more_details.open").not($details).slideUp(600, function() { $(this).removeClass("open"); }); });
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div id="results"> <div class="details">details</div> <div class="more_details">more_details</div> <div class="details">details</div> <div class="more_details">more_details</div> <div class="details">details</div> <div class="more_details">more_details</div> <div class="details">details</div> <div class="more_details">more_details</div> </div>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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