我有一个图像元素,以下是按钮的html
<input type="image"src="images/undo.png" onmouseover="this.src='images/undo-hover.png'" onmouseout="this.src='images/undo.png'" id="btn_back" onClick="back();" >
当我的应用程序禁用此输入(属性已禁用=&#34;禁用&#34;)时,所有浏览器都会停止触发鼠标事件。所以我不会悬停图片。但是歌剧仍然会继续发射这些事件,并且我一直在残疾元素上获得悬停图像。
答案 0 :(得分:0)
您可以尝试默认禁用INPUT元素(从开始时在INPUT标记中添加disabled =“disabled”)。然后看看Opera是否仍然响应鼠标悬停。这可能无法立即解决问题,但有助于找出原因。
另外,另一种方法可能是在鼠标事件上调用JS函数并检查元素是否被禁用。如果它被禁用,则不要更改src属性。
HTH,
答案 1 :(得分:0)
这是Opera中的一个错误,因为我们显然在做与其他浏览器不同的事情。请在https://bugs.opera.com/wizard/上报告并告诉我错误ID。
那就是说,我认为你所依赖的东西在任何地方都是标准化的,所以你可能不应该编写依赖于这种有点古怪行为的代码。 “disabled”属性仅表示元素在单击时不会执行其正常操作。我没有看到任何理由为什么设置禁用应该阻止触发鼠标悬停/移动。如果按钮被禁用,很容易从JS检查,如果是,则不交换图像。
答案 2 :(得分:0)
这似乎是歌剧中的预期行为,请参阅以下链接。
http://www.quirksmode.org/dom/events/click.html
它表示“禁用表单字段上的点击事件不会触发Firefox和Safari中的事件.Opera会触发mousedown和mouseup事件,但不会触发点击事件.IE会触发mousedown和mouseup,但不会点击,所有这些实现都被认为是正确的。“
谢谢, Unnikrishnan B。