以下是我的代码片段,旨在显示所选线程的注释。
$('.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();
发布到控制台中,则行{{1}}可以正常工作,但由于某种原因,它会在此脚本中被忽略。我输入了console.log()命令,它表明它肯定应该执行它。
commentsDown和currentDown是全局变量,最初分别设置为false和null。
Here是一个JSFiddle。线程目前是静态HTML。正如您所看到的,如果您打开一个线程然后打开另一个线程,它可以正常工作,但它不能用于关闭线程。
答案 0 :(得分:2)
您应该能够将整个代码块减少到:
$(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 强>
答案 1 :(得分:-1)
在document.ready标签内添加您的功能;
$(document).ready(function () {
//insert your code here
});
了解更多信息。去这个网站: http://learn.jquery.com/using-jquery-core/document-ready/
希望有所帮助:)