下面是我的代码片段,旨在显示所选的某个线程的评论。
$('.comments-count').click(function(){
if(!commentsDown){
$(this).parent().parent().siblings('.comments').stop().slideDown();
commentsDown = true;
currentlyDown = $(this).parent().parent().siblings('.comments');
}else{
$(currentlyDown).stop().slideUp();
var newDown = $(this).parent().parent().siblings('.comments');
if(newDown != currentlyDown){
$(this).parent().parent().siblings('.comments').stop().slideDown();
commentsDown = true;
currentlyDown = $(this).parent().parent().siblings('.comments');
}else{
commentsDown = false;
currentlyDown = null;
}
}
})
如果将 $(currentlyDown).stop().slideUp();
行发布到控制台,它就会起作用,但由于某种原因,它在此脚本中被忽略。我输入了 console.log() 命令,它表明它肯定应该执行它。
commentsDown 和 currentDown 是全局变量,最初分别设置为 false 和 null。
Here是一个 JSFiddle。线程当前是静态 HTML。正如您所看到的,如果您打开一个线程,然后打开另一个线程,它可以正常工作,但关闭一个线程则不起作用。
最佳答案
您应该能够将整个代码块减少到:
$(document).ready(function () {
$('.comments-count').click(function () {
$('.comments-count').not($(this)).parent().parent().siblings('.comments').stop().slideUp();
$(this).parent().parent().siblings('.comments').stop().slideToggle();
})
//Log colour pattern
$('div.event-log-entry:even').addClass('evens');
$('div.event-log-entry:even .comments-count').addClass('evens');
})
<强> jsFiddle example
关于javascript - SlideUp 命令被忽略,但在控制台中有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28755151/