Ajax "отменяет выбор" гиперссылки под курсором мыши - PullRequest
1 голос
/ 15 марта 2010

У меня есть страница, которая выполняет запрос Ajax, который заменяет div каждую секунду. Этот div также содержит гиперссылки.

Если пользователь попытается щелкнуть одну из гиперссылок, она сработает, но если он переместит курсор на ссылку, подождите секунду, не перемещая курсор, гиперссылка больше не будет иметь псевдостайл "зависание", и если они нажмите не в то время, ссылка не работает.

Есть ли способ обновить div, не вызывая этого, или восстановить состояние «наведенного курсора» на ссылку?

Ответы [ 2 ]

0 голосов
/ 16 марта 2010

Удобство в использовании - это плохая идея, чтобы обновить div ссылками, на которые пользователь должен иметь возможность щелкать ... Если содержимое фактически не изменяется при каждом обновлении (просто перерисовывается, заменяя его тем же самым контент) он не только будет бесполезно мерцать, но и может привести к сбоям в работе, как вы заметили.

Вы можете исправить это, (каким-то образом) сравнивая старое и новое содержимое div, и ничего не делать, если содержимое не изменилось, но когда оно изменится, для пользователя будет довольно странно, если оно изменится непосредственно перед тем, как они изменятся. нажмите кнопку. Если вам нужно обновить ссылки с другим контентом, я бы предложил вам внедрить некоторую анимацию (при реальных изменениях), такую ​​как постепенное исчезновение + постепенное появление или что-то подобное, что уведомит пользователя о том, что ссылка, на которую он нацелен, собирается исчезнуть. (Я бы предложил очень медленное затухание (1-2 секунды) старого контента и довольно быстрое затухание (возможно, 50-200 мс).

О стиле наведения, не работающем без движения мыши; Я действительно не думаю, что вы можете что-то сделать с этим, потому что это поведение браузера. Перемещение элемента с помощью js или других хитростей, может или не может работать и, вероятно, не стоит усилий. И если вы обновляете контент только после того, как он действительно изменился, ссылка не всегда может быть в одном и том же месте ...

0 голосов
/ 15 марта 2010

Я думаю, что вам лучше всего просто обновить ссылку (ссылки) по отдельности, вместо того, чтобы уничтожать и воссоздавать полный контейнерный div. Это должно устранить «мерцание», которое приводит к такому поведению ссылки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...