slideUp命令被忽略,但在控制台中有效

slideUp command being ignored, but works in console?

本文关键字:控制台 有效 命令 slideUp      更新时间:2024-07-02

下面是我的代码片段,用于显示所选某个线程的注释。

$('.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和currentlyDown是全局变量,最初分别设置为false和null。

这是一个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示例

在document.ready标记中添加函数;

$(document).ready(function () {
//insert your code here
});

了解更多信息。访问此网站:http://learn.jquery.com/using-jquery-core/document-ready/

希望有帮助:)