这是行不通的,因为onmouseover
在大多数浏览器中不会禁用禁用输入。 (Opera是一个例外,IE通常不会,除非你用拖动操作来欺骗它。)
在任何情况下,它听起来都像是一个非常奇怪和用户不友好的诡计。 为什么选择要禁用它吗?如果它在尝试与之交互时变为非禁用状态,那么它似乎没有任何意义(但存在大量的可访问性缺陷)。
如果它只是一个造型的东西,然后使用样式:
<style type="text/css">
.weirdinput { color: silver; }
.weirdinput:hover, .weirdinput:focus { color: black; }
</style>
<input class="weirdinput" value="smth" />
然而,IE < 8不支持:focus
,和IE < 7不支持非链接:hover
,因此,如果您需要它的工作,你将不得不添加一些脚本,例如。例如:
<style type="text/css">
.weirdinput { color: silver; }
.weirdinput:hover, .weirdinput:focus, .weirdhover, .weirdfocus { color: black; }
</style>
<input class="weirdinput" value="smth" />
<!--[if lt IE 8]><script type="text/javascript">(function() {
// Fix focus/hover for IE on all inputs with class 'weirdinput'
//
var inputs= document.getElementsByTagName('input');
for (var i= 0; i<inputs.length; i++) {
var input= inputs[i];
if (input.className.indexOf('weirdinput')!==-1) {
input.onmouseover= mouseover;
input.onmouseout= mouseout;
input.onfocus= focus;
input.onblur= blur;
}
}
function mouseover() {
this.className+= ' weirdhover';
}
function mouseout() {
this.className= this.className.replace(' weirdhover', '');
}
function focus() {
this.className+= ' weirdfocus';
}
function blur() {
this.className= this.className.replace(' weirdfocus', '');
}
})();</script><![endif]-->
这听起来像一个非常奇怪的用户体验,如果你不介意我的话。首先,这意味着您完全禁用键盘访问该字段。我们的键盘类型不会那么喜欢,可访问性软件也可能会遇到这种情况。 – 2010-05-26 13:09:53
你能告诉我们更多关于你为什么要这样的行为吗? – 2010-05-26 13:13:46
我同意T.J.对此,我很少在网页上触摸我的鼠标。 – CharlesLeaf 2010-05-26 13:14:07