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 に答える