JS的鼠标事件,难倒一片高手!求救

来源:百度知道 编辑:UC知道 时间:2024/05/30 18:09:17
请测试完再发布答案,我已经试了几十种方法都不行
问题一:以下是一段仿VISTA系统按键的代码
<input class="this" type="Button"
onFocus="this.className='focus';"
onBlur ="this.className='this';"
onMouseOver="this.className='over';"
onMouseOut="(this.focus?this.className='this':this.className='focus')"
onMouseDown="this.className='down';"
value="确定" name="Button1">
问题出在onMouseOver,移开后按键的样式不能根据是否获取焦点而变,如我们的XP系统,当你指向一个代有焦点的按键时,按键周边有蓝色边框,移上去移下来还是有蓝色边框,而没有焦点的移上去再移下来,是没边框的,所以在onMouseOver这里要判断是不是获得了焦点,但是上面的代码这句不起作用,求解!

问题二:以下是防VISTA输入密码框的代码
<input name="textfield" type="text" value="Password" onclick="this.value='';this.type='Password'">
就是一个密码框,在密码框里提示输入密码,也就是“password"当然把这里由text设置成password,那这里value的内容都会显示*****了,我要显示明文,但是点击后,"Password"消失,再输入的是******

如楼上所讲this.focus 是一个方法,没有这个属性,this.focus() 方法调用之后将导致触发onFocus 事件

问题二的
this.type 属性在IE中是只能初始化一次的,就是只能设置一次,以后不能再改,在而且是调用createElement 动态 创建后,还没有加到document才能改。
不过在FireFox中好像是可以随便改的,所以你的代码在FireFox中是可以的。

首先第一个里面focus是个方法,而不是属性,所以使用的时候应该是this.focus()