Javascript jQuery停止函数运行两次

Javascript jQuery停止函数运行两次,javascript,jquery,Javascript,Jquery,我正在使用slideUp/down显示和隐藏内容,并已将其写入,当打开另一个内容时,它将关闭任何可见内容。直到我试图通过点击内容来关闭它,它会立即再次打开它 HTML <ul class="contents"> <li> while($results->fetch()){ <div class="details">text</div> <div class="more_detai

我正在使用slideUp/down显示和隐藏内容,并已将其写入,当打开另一个内容时,它将关闭任何可见内容。直到我试图通过点击内容来关闭它,它会立即再次打开它

HTML

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

在向下滑动代码中,您正在处理下一个同级
更多详细信息
,在向上滑动代码中,您正在处理
元素

$(“#结果”)。在(“单击“,”.details”,函数()上{
var$details=$(this.next(“.more_details”);
$details.slideToggle(600,函数(){
$details.toggleClass(“打开”);
});
$(“.more_details.open”).not($details).slideUp(600,函数(){
$(此).removeClass(“打开”);
});
});

细节
更多详情
细节
更多详情
细节
更多详情
细节
更多详情

您是否也可以共享html示例,因为您的打开和关闭不是对称的。您正在关闭
详细信息
,但打开
更多详细信息
@gurvinder372 OP的代码是正确的-尽管由于布局原因很难看到。我已经修复了压痕。
$("#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");
        });
    }   
});