2


1

同じ要素上でリリースしない場合、MouseUpイベントを失う

スライダーに問題があります。 ハンドラーを取得するとき、色を変更するために、画像の.srcを変更します。 ただし、マウスボタンを離すと元の色に戻ります。 私は2つのことを試しました。

1)ハンドラーのmouseupイベントで元に戻す:これは、ハンドラーの上でボタンを離した場合にのみ機能するため、これは解決策ではありません。

2)ウィンドウのmouseupイベントに戻って変更する:イベントは適切に起動していません。 ウィンドウの任意の場所をクリックして離すと、イベントは正常に発生しますが、ハンドラー内をクリックして、ウィンドウの他のポイントにカーソルを移動し、ボタンを離すと、イベントは発生しません。

ところで、私はプロトタイプjsフレームワークを使用しています。

解決策は? ありがとう

これがそのコードです。 ドキュメントの準備ができたら、ハンドラー関数を読み込みます。

function handler()
{

    var handler = $('handler');

    Event.observe(window, "mouseup", function(){
        alert('salta');   //to see when mouseup fires
        if(handler.src=='http://localhost/moodle/blocks/videoavatar/eggface/trunk/gripper_o.png'){    //orange
            handler.src='http://localhost/moodle/blocks/videoavatar/eggface/trunk/gripper.png';}    //grey
    });


    Event.observe(handler,'mousedown',function(){handler.src='http://localhost/moodle/blocks/videoavatar/eggface/trunk/gripper_o.png';});    //orange

}

3 Answer


5


mouseup`ハンドラーを document`オブジェクトにアタッチする必要があります。


1


「onmouseout」イベントはどうですか?


1


これがそのコードです。 ドキュメントの準備ができたら、ハンドラー関数を読み込みます。

function handler()
{

    var handler = $('handler');

    Event.observe(window, "mouseup", function(){
        alert('salta');   //to see when mouseup fires
        if(handler.src=='http://localhost/moodle/blocks/videoavatar/eggface/trunk/gripper_o.png'){    //orange
            handler.src='http://localhost/moodle/blocks/videoavatar/eggface/trunk/gripper.png';}    //grey
    });


    Event.observe(handler,'mousedown',function(){handler.src='http://localhost/moodle/blocks/videoavatar/eggface/trunk/gripper_o.png';});    //orange

}