如果存在alert语句,为什么代码有效

时间:2014-02-10 19:38:24

标签: javascript jquery

我有以下代码:

$("#doctorLists").click(function(){
    $("#doctorListsDisplay").slideToggle("slow", function() {
        if ( $('#doctorListsDisplay').is(':hidden')) {
            //alert ('hidden');
            $('#searchMP').css({ top: $("#doctorLists").position().top + 40 }).show();
            if ($('#searchMPDisplay').is(':visible')) {
                alert("MP visible");
                $('#searchMPDisplay').css({ top: $("#searchMP").position().top + 30 }).show();
            }
            value +=180;
            $('#imgArrowDown').rotate({ animateTo:value})
        }
        else {
            //alert ('shown');
            $('#searchMP').css({ top: $("#doctorLists").position().top + 230 }).show();
            if ($('#searchMPDisplay').is(':visible')) {
                alert("MP hidden");
                $('#searchMPDisplay').css({ top: $("#searchMP").position().top + 30 }).show();
            }
            value +=180;
            $('#imgArrowDown').rotate({ animateTo:value})
        }
    });
});

以下代码行的唯一时间是,如果没有注释掉警告语句:

if ($('#searchMPDisplay').is(':visible')) {
    alert("visible");
    $('#searchMPDisplay').css({ top: $("#searchMP").position().top + 30 }).show();
}

if ($('#searchMPDisplay').is(':visible')) {
    alert("hidden");
    $('#searchMPDisplay').css({ top: $("#searchMP").position().top + 30 }).show();
}

我添加了alert语句以查看状态,但现在如果我删除它,则代码不起作用。有人可以帮我找出原因吗?

enter image description here enter image description here enter image description here

1 个答案:

答案 0 :(得分:2)

可能的解释是警报会挂起代码执行,直到您尝试显示/隐藏的元素添加到DOM中。

调试代码的最佳方法是添加console.log而不是警报,信息元素已经在DOM中。