我得到的奇怪的错误。我有一个默认隐藏的登录表单,一旦用户点击观察到的元素,包含表单的元素向下滑动(使用Scriptaculous中的Effect.BlidnDown)
这是函数,它是'Interface'对象的一部分:
revealLoginForm: function() {
$('a_login').blur();
if (!$('hform').visible()) {
Effect.BlindDown('hform', {
duration: 0.4,
afterFinish: function() {
$('f_login').focusFirstElement();
}
});
} else {
$('f_login').focusFirstElement();
}
},
事件观察:
Event.observe('a_login', 'click', Interface.revealLoginForm);
HTML:
<a id='a_login' href='javascript:void(0);'>Login to My Account</a>
....
<div id='hform' style='display:none;'>
<form id='f_login' action='...' method='post' name='sidelogin'>
<table cellspacing='0' class='login'>
<tr>
<th>Login ID:</th><td><input style='padding:2px;' type='text' size='18' name='enc_loginname' /></td>
</tr>
<tr>
<th>Password:</th><td><input style='padding:2px;' type='password' size='18' name='enc_password' /></td>
</tr>
<tr>
<th></th><td><input type='submit' class='submit' value='Login »' /></td>
</tr>
</table>
</form>
</div>
如果我禁用$('f_login')。focusFirstElement();在revealLoginForm()中的命令,表单不会消失。奇怪的是,对该函数的另一个调用不会对元素产生负面影响,只有在AfterFinish回调函数调用后才会发生.BlindDown函数。
有什么想法吗?一旦表单出现,选择此表单的第一个元素会很高兴。这在Firefox中运行良好..它只是IE(我使用IE7)导致问题(去图......)