Странная ошибка, которую я получаю. У меня есть форма входа, которая по умолчанию скрыта, когда пользователь нажимает на наблюдаемый элемент, элемент, содержащий форму, скользит вниз (используя Effect.BlidnDown в Scriptaculous)
Вот функция, которая является частью объекта «Интерфейс»:
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 (); Команда в функцию раскрытия логина (), форма не исчезает. Странно то, что другой вызов этой функции не оказывает негативного влияния на элемент, кажется, что это происходит только при вызове в функции обратного вызова afterFinish для функции Effect.BlindDown.
Есть идеи? Было бы неплохо выбрать первый элемент этой формы после того, как форма появилась. Это отлично работает в Firefox .. это просто IE (я использую IE7), который вызывает проблемы (пойди разберись ...)