JQuery:如何确定Slide事件是向上还是向下?

27

我有以下代码:

$('a.btn-slide').toggle(function() {
    $("#DivToSlide").slideUp("fast");
    // ...
}, function() {
    $("#DivToSlide").slideDown("fast");
    // ...
});

在我的代码中,稍后我想找出#DivToSlide是处于向上位置还是向下位置。

我该怎么做?


2
如果正在进行动画,怎么办? - SLaks
2个回答

63
自从slideDown函数在完成后隐藏元素,你可以简单地检查该元素是否可见:
if ($('#DivToSlide').is(':visible'))

你也可以检查 $('#DivToSlide').height() 是否超过某个阈值。


为什么我应该“检查$('#DivToSlide').height()是否超过某个阈值”? - JGreig
如果正在进行动画,则需要考虑这种情况。 - SLaks
点赞了这个height()技巧,我今天早些时候正想找一个方法来做这件事。 - HurnsMobile
2
你不能检查一下它是否不是:animated吗?如果是的话再重新检查一遍?- http://api.jquery.com/animated-selector/ - Mottie
@fudgey:这取决于他想做什么。 - SLaks

1
if($(this).next('.nxt_div').height()>1){ }

有时候 height()、innerHeight() 和 outerHeight() 会返回意外的结果,因为它们基于当前计算出的值。上面的答案解决了这个问题,所以是更好的选择。 - Burkely91

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接