如果不在同一元素上释放,则丢失MouseUp事件

时间:2010-09-30 14:32:05

标签: javascript css events prototypejs onmouseup

我遇到滑块问题。当我抓住处理程序时,我改变图像的.src,只是为了改变它的颜色。但是,我希望它在我释放鼠标按钮时更改回原始颜色。我尝试了两件事。

1)在处理程序mouseup事件上更改它:这只有在我释放处理程序上的按钮时才有效,所以这不是解决方案。

2)Changin它回到了窗口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 个答案:

答案 0 :(得分:6)

您应该将mouseup处理程序附加到document对象。

答案 1 :(得分:1)

onmouseout事件怎么样?

答案 2 :(得分: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

}