Events Opera在禁用的输入元素上触发鼠标事件

Events Opera在禁用的输入元素上触发鼠标事件,events,input,opera,Events,Input,Opera,我有一个图像元素,下面是按钮的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();" > 当我的应用程序禁用此输入(attribute disabled=“disabled”)时,所有浏览器都停止触发鼠标事

我有一个图像元素,下面是按钮的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();" >


当我的应用程序禁用此输入(attribute disabled=“disabled”)时,所有浏览器都停止触发鼠标事件。所以我没有悬停图像。但是opera仍然不断地启动这些事件,我不断地在禁用元素上获得悬停图像

请尝试默认禁用输入元素(从开始在输入标记中添加disabled=“disabled”)。然后查看Opera是否仍对鼠标悬停作出响应。这可能无法立即解决问题,但有助于找出原因

另外,另一种方法是在鼠标事件上调用JS函数,并检查元素是否被禁用。如果已禁用,则不要更改src属性


嗯,

这是Opera中的一个bug,因为我们显然在做一些与其他浏览器不同的事情。请报告并给我错误ID


也就是说,我不认为您所依赖的东西在任何地方都是标准化的,所以您可能不应该编写依赖于这种有点古怪的行为的代码。“disabled”属性仅仅意味着元素在单击时不会执行其正常操作。我真的不明白为什么设置为禁用会阻止鼠标移动。从JS很容易检查按钮是否已禁用,如果已禁用,则不交换图像。

这似乎是opera中的预期行为,请参阅以下链接

它说“在禁用表单字段上的单击事件不会在Firefox和Safari中触发事件。Opera会触发mousedown和mouseup事件,但不会触发click事件。IE会在表单上触发mousedown和mouseup,但不会触发click。所有这些实现都被认为是正确的。”

谢谢,
Unnikrishnan B.

我在默认情况下尝试了disabled=“disabled”。我正在尝试检查opera中的元素,我可以在元素标记中看到disabled=“disabled”,但仍然会触发鼠标事件。好的,尝试使用第二种方法。编写一个JS方法,检查元素是否被禁用,然后更改“src”属性。在鼠标事件上调用此JS函数。我认为这应该行得通。是的,这是正确的选择,我想知道的是为什么opera在输入元素被禁用时会触发事件。当opera禁用其他输入元素时,它们不会触发事件。opera的input type=“image”实现有缺陷吗?是的,这对我来说也很奇怪。当然,可能会有马车,但我不确定。您可能需要查看Opera开发论坛。