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