11

我希望能够检查调用函数时是否正在发生事件。当使用 .draggable() 上下拖动我的自定义滚动条时,我调用了一个函数,并且当我的容器滚动时,我也调用了一个函数。问题是两者同时运行,这使得它出现故障。

所以我的问题是如何执行“if”语句检查当前是否正在拖动滚动条,以便阻止它执行其余的函数代码?

我不是在问一个元素是否有一个“绑定”到它的事件,而是在问这个事件是否在特定时刻被触发。

我可以这样做吗?还是我需要采取另一种方法?

这是我的代码的样子:

$('.container').scroll(function(){
    //get the heights of the container and it's contents and the difference
    //get the height of the scroll bar and it's container and the difference
    //declare the top property of scroll bar from this info
});
function scrolly() {
    //get the heights of the elements described above
    //declare the scrollTop of the container
}
$('.bar').draggable({
    axis: 'y',
    containment: 'parent',    
    drag: function() {
        scrolly();
    }
});
4

1 回答 1

15

更新

您可以使用此条件来确定您的栏是否被拖动:

if ($('.bar').is('.ui-draggable-dragging')) {
    return; // bar is being dragged
}
于 2012-05-25T06:04:58.473 回答