我有以下代码:
$("#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语句以查看状态,但现在如果我删除它,则代码不起作用。有人可以帮我找出原因吗?
答案 0 :(得分:2)
可能的解释是警报会挂起代码执行,直到您尝试显示/隐藏的元素添加到DOM中。
调试代码的最佳方法是添加console.log
而不是警报,信息元素已经在DOM中。