.is(“:hidden”)在.hide(“slow”)

时间:2017-09-24 17:16:57

标签: javascript jquery html css

我希望构建一个函数,根据另一个div的可见性重新调整一个div的外观(通过.is(“:hidden”)) - 而不引入其他变量。 当我使用.hide()而不是.hide(“slow”)时,这很有效。在后一种情况下,如果立即启动,检查会将其检测为可见。 例如:

$('#1').hide("slow");

//...

if($("#1").is(':hidden'))
{
    //do something with #2
}

如果我不使用“慢”(或精确地使用:.hide()),则上述效果很好。有没有办法在不引入额外变量或添加超时的情况下解决此问题?

1 个答案:

答案 0 :(得分:2)

元素在淡出时仍然可见。你可以设置一个数据属性来告诉自己它正在消失:

$("#1").hide("slow", function() {
    $(this).removeData("hiding");
}).data("hiding", true);

// ...
var one = $("#1");
if (one.is(":hidden") || one.data("hiding")) {
    // ...
}