Javascript Ajax";取消选择";鼠标光标下的超链接
我有一个页面,它执行每秒替换一个div的Ajax请求。 这个div中也有超链接 如果用户尝试单击其中一个超链接,它将起作用,但如果用户将光标移动到链接上,请等待一秒钟,但不移动光标,超链接将不再具有“悬停”伪样式,如果用户在错误的时间单击,链接将不起作用Javascript Ajax";取消选择";鼠标光标下的超链接,javascript,ajax,Javascript,Ajax,我有一个页面,它执行每秒替换一个div的Ajax请求。 这个div中也有超链接 如果用户尝试单击其中一个超链接,它将起作用,但如果用户将光标移动到链接上,请等待一秒钟,但不移动光标,超链接将不再具有“悬停”伪样式,如果用户在错误的时间单击,链接将不起作用 有没有办法更新div而不引起此问题,或者恢复链接的“鼠标悬停”状态?我认为最好的办法是单独更新链接,而不是销毁并重新创建完整的容器div。这应该可以消除“闪烁”这就导致了链接的这种行为。从可用性的角度来看,用用户应该能够单击的链接更新div似乎
有没有办法更新div而不引起此问题,或者恢复链接的“鼠标悬停”状态?我认为最好的办法是单独更新链接,而不是销毁并重新创建完整的容器div。这应该可以消除“闪烁”这就导致了链接的这种行为。从可用性的角度来看,用用户应该能够单击的链接更新div似乎不是个好主意。。。如果内容在每次刷新时没有实际更改(只是用相同的内容替换它来重新呈现),它不仅会不必要地闪烁,而且可能会导致链接出现故障,正如您所注意到的那样 您可以通过(不知何故)比较div的新旧内容来解决这个问题,如果内容没有更改,则什么也不做,但是当内容确实更改时,如果它在用户单击之前更改,则会让用户感到非常困惑。如果你需要用不同的内容更新链接,我建议你实施某种动画(根据实际变化),比如淡出+淡入或其他什么,这会通知用户他们想要的链接即将消失。(我建议对旧内容进行缓慢的淡出(1-2秒),然后快速淡入(50-200毫秒)
关于不移动鼠标的悬停方式不起作用;我真的不认为你能做些什么,因为这是浏览器行为。使用js或其他花哨的技巧移动元素,可能有效,也可能无效,可能不值得付出努力。如果你只在内容发生实际更改时更新内容,链接可能并不总是我无论如何,在同一地点…div包含其他需要更新的项目,并且href不是链接唯一可以更改的东西,有时样式或内容会更改。@AlliedHacker:是的,您应该仍然能够更改样式、innerHTML等,而不会引起闪烁。至于div中的其他元素,我建议更新我不认为在删除和重新创建整个div时有一个简单的解决方法。看起来浏览器只会在mouseMove事件中对“hover”伪样式做出反应……而且由于在重新创建链接时它不会移动,因此它的行为不符合预期。