我有一个页面执行Ajax请求,每秒替换一个div。 这个div也有超链接。
如果用户尝试单击其中一个超链接,它将起作用,但是如果他们将光标移动到链接上,等待一秒而不移动光标,超链接不再具有“悬停”伪样式,如果他们点击错误的时间,链接不起作用。
有没有办法在不造成这种情况的情况下更新div,或者恢复链接的“鼠标悬停”状态?
答案 0 :(得分:0)
我认为您最好的选择是单独更新链接,而不是销毁和重新创建完整的容器div。这应该消除导致链接以这种方式运行的“闪烁”。
答案 1 :(得分:0)
可用性明智的做法是用一个用户应该能够点击的链接来更新div听起来是个坏主意...如果内容实际上没有随每次刷新而改变(只需用相同的替换它来重新渲染)内容)它不仅会不必要地闪烁,而且可能会导致链接出现故障,因为您已经注意到了。
你可以通过(某种方式)比较div的旧内容和新内容来解决这个问题,如果内容没有改变就什么都不做,但是如果它确实发生了变化,如果用户在它们发生变化之前就会发生变化单击。如果您需要更新具有不同内容的链接,我建议您实现某种类型的动画(实际更改),如淡出+淡入或其他内容,这会通知用户他们所针对的链接是即将消失。 (我建议旧内容的淡出淡出(1-2秒),以及相当快的淡入淡出(可能是50-200 ms)。
关于悬停样式在不移动鼠标的情况下无法正常工作;我真的不认为你可以做些什么,因为这是浏览器的行为。使用js或其他花哨技巧移动元素可能会也可能不会起作用,可能不值得努力。如果您只是在实际更改内容时更新了内容,那么链接可能并不总是在同一个位置......