0

这个问题中,我发现在切换 div 的可见性时使用缓动设置会破坏确定切换当前状态的能力。

jsFiddle我有这些行:

$(this).next('div.detailsTable').toggle('blind', 'easeInOutQuart', 300);
$(this).next('div.detailsTable').toggle();

随着它们中的每一个被交替注释掉,检查“.is(':visible')”的 if 语句显示第一行始终显示为 false(不可见)。

在 HTML 的控制台中查看,显示属性(无或可见)永远不会在隐藏/显示的 div 上设置。

转到上面链接的 jsFiddle 并交替注释掉每一行,你就会明白我的意思了。

如果您在 jsFiddle 中的代码中发现有问题,请告诉我,否则,我该如何解决这个问题才能确定切换状态,以便我可以根据每个状态做一些事情?

4

1 回答 1

2

只需在切换结束时使用回调,否则测试将在动画结束之前完成

.toggle('blind', 'easeInOutQuart', 300, function(){
    if ($(this).is(':visible')) {
        alert('visible');
    } else {
        alert('not visible');
    }
});

http://jsfiddle.net/wWaDm/7/

于 2013-02-25T13:17:30.493 回答