这应该非常简单:
<input type="button" name="test" id="test" value="roll over me" onmouseover="this.disabled=true;" onmouseout="this.disabled=false;">
如果我将鼠标光标放在此按钮上,它会被禁用..好吧! 但是现在当我把光标移出时,它没有启用......嘘。
我理解禁用它的概念意味着你无法用它做任何事情。但是如何通过鼠标启用它?可能吗?我错过了什么吗?
答案 0 :(得分:5)
您应该将mouseout设置为disabled = ''
。
<input type="button" name="test" id="test" value="roll over me" onmouseover="this.disabled=true;" onmouseout="this.disabled='';">
禁用的财产只会查看它是否存在。您可以设置disabled ='anything',它将被禁用。过去,您只需要在属性中使用关键字disabled
,但对于有效的XHTML,您需要将每个属性设置为等于某个属性。
修改强>
我稍微玩了一下,并在SPAN
标签中添加了一些填充,它允许事件正常工作。没有填充,它不会捕获事件,因为输入按钮被禁用。我刚刚将背景设为红色,因此很容易看到SPAN
用完的区域。
<span style="padding: 8px; background: red;" onmouseout="this.firstChild.disabled='';"><input type="button" name="test" id="test" value="roll over me" onmouseover="this.disabled=true;"></span>
答案 1 :(得分:2)
太糟糕没有人真正回答过这个问题。可以做*。
<div style="display: inline-block; position: relative">
<input type="button" id="button" disabled="disabled">
<div id="buttonMouseCatcher" style="position:absolute; z-index: 1;
top: 0px; bottom: 0px; left: 0px; right: 0px;">
</div>
然后:
答案 2 :(得分:1)
禁用表单元素不会按规范触发鼠标事件。
我用作解决方法的方法是使用“禁用”类来模拟禁用的行为,并将事件句柄与之关联。适用于按钮,但我认为它不适用于文本输入和复选框。
答案 3 :(得分:0)
你可以有一个围绕它的外部元素,并为该外部元素设置一个onmouseover,以启用内部元素。