0

我有一个 HTML 按钮,它包装了一个图像标签并定义了一个onmouseuponmousedown处理程序。当按钮向下时,图像变为按下的图像,当它向上时,它变为向上的图像。问题是如果用户在按钮按下时将鼠标从按钮上拖开,onmouseup则永远不会调用该事件,因此图像会保持按下状态。这是正在发生的事情的一个例子。尝试单击按钮并将其拖出:http: //jsfiddle.net/gsingh93/ubyV8/5/

我将如何解决这个问题?

4

3 回答 3

0

您必须window用作目标:

document.getElementsByTagName("button")[0].addEventListener("mousedown", function(){
    document.getElementById("image").src = "http://www.clogsmusic.com/padma/redCircle50x50.gif";
    window.onmouseup = function(){
        document.getElementById("image").src = "http://creativeenergyblog.files.wordpress.com/2008/05/blue-circle.jpg?w=50&h=50";
    }
});

工作演示:http: //jsfiddle.net/DerekL/XTLJ6/

于 2012-06-10T22:00:05.013 回答
0

当鼠标离开按钮时调用 mouseUp():

onmouseout="mouseUp();"
于 2012-06-10T22:00:43.580 回答
0

好,我知道了!我摆脱了图像并将图像作为按钮的背景。我还实现了一个条件 onmouseout() 调用来处理您的问题。看一看。喜欢就点个赞吧!

http://jsfiddle.net/ubyV8/19/

于 2012-06-10T22:08:06.120 回答