0

例がなくてすみません。

ただし、スクロールボックス(左右にスクロール)を作成しています.mouseDown関数を2つの画像にバインドしています(これらはボックスのスクロールに使用されます)。関数は「scrollLeft()」と「scrollRight()」です。

これらの機能は計画どおりに機能します (ボックスを左右に移動します)。ただし、mouseUp イベントに問題があります。マウスを画像の上に置いてマウスを離すと、スクロールイベントがキャンセルされ、スクロールが停止します。

ただし、マウスを画像から離してマウスアップすると、スクローラーは機能し続けます。

私はjqueryを使用しており、さまざまなことを試しました

$("*").mouseup(function(){
    console.log("ouseup");
    clearInterval(interval);
});

これもうまくいきません。マウスアップがトリガーされるたびに「間隔」間隔を殺したい。

助言がありますか?

4

2 に答える 2

0

ドキュメントのmouseupイベントにハンドラーをアタッチできます。

$(document.body).mouseup(function() {
    console.log("ouseup");
    clearInterval(interval);
});

このように、マウスボタンをクリックしてその領域を離れると、離すまでスクロールし続けます。

于 2009-09-23T08:51:30.843 に答える
0

mouseout()イベントを使用するのが最適なようです。マウスが画像から離れたときに起動するように、画像にもバインドします。

編集:わかりました、マウスがそれらの画像を離れるたびに、mouseup イベントが発生するようにする必要があります。したがって、 triggerHandler()関数を利用する必要があります。

$('#myImage').mouseout(function(){
  $('#myImage').triggerHandler('mouseup');
});

別の方法として (すでに提案されているように)、mouseup イベントをボディ全体にバインドすることもできます。

$('body').mouseup(function(){
  ClearInterval();
});

ボタンを離す前にマウスを画像から離したときに mouseup イベントが発生しない理由は、マウス ボタンが別の要素の「up」イベントを発生させているためです。mouseup イベントは、その時点でマウスが置かれている要素に対してトリガーされることに注意してください。したがって、もちろん、マウス ボタンを 1 か所で押し下げてから、mouseup イベントが発生する領域から離すと、その領域はマウス ボタンが再び離されたことを認識することはありません。

于 2009-09-23T08:44:41.060 に答える