Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/414.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Ajax";取消选择";鼠标光标下的超链接_Javascript_Ajax - Fatal编程技术网

Javascript Ajax";取消选择";鼠标光标下的超链接

Javascript Ajax";取消选择";鼠标光标下的超链接,javascript,ajax,Javascript,Ajax,我有一个页面,它执行每秒替换一个div的Ajax请求。 这个div中也有超链接 如果用户尝试单击其中一个超链接,它将起作用,但如果用户将光标移动到链接上,请等待一秒钟,但不移动光标,超链接将不再具有“悬停”伪样式,如果用户在错误的时间单击,链接将不起作用 有没有办法更新div而不引起此问题,或者恢复链接的“鼠标悬停”状态?我认为最好的办法是单独更新链接,而不是销毁并重新创建完整的容器div。这应该可以消除“闪烁”这就导致了链接的这种行为。从可用性的角度来看,用用户应该能够单击的链接更新div似乎

我有一个页面,它执行每秒替换一个div的Ajax请求。 这个div中也有超链接

如果用户尝试单击其中一个超链接,它将起作用,但如果用户将光标移动到链接上,请等待一秒钟,但不移动光标,超链接将不再具有“悬停”伪样式,如果用户在错误的时间单击,链接将不起作用


有没有办法更新div而不引起此问题,或者恢复链接的“鼠标悬停”状态?

我认为最好的办法是单独更新链接,而不是销毁并重新创建完整的容器div。这应该可以消除“闪烁”这就导致了链接的这种行为。

从可用性的角度来看,用用户应该能够单击的链接更新div似乎不是个好主意。。。如果内容在每次刷新时没有实际更改(只是用相同的内容替换它来重新呈现),它不仅会不必要地闪烁,而且可能会导致链接出现故障,正如您所注意到的那样

您可以通过(不知何故)比较div的新旧内容来解决这个问题,如果内容没有更改,则什么也不做,但是当内容确实更改时,如果它在用户单击之前更改,则会让用户感到非常困惑。如果你需要用不同的内容更新链接,我建议你实施某种动画(根据实际变化),比如淡出+淡入或其他什么,这会通知用户他们想要的链接即将消失。(我建议对旧内容进行缓慢的淡出(1-2秒),然后快速淡入(50-200毫秒)


关于不移动鼠标的悬停方式不起作用;我真的不认为你能做些什么,因为这是浏览器行为。使用js或其他花哨的技巧移动元素,可能有效,也可能无效,可能不值得付出努力。如果你只在内容发生实际更改时更新内容,链接可能并不总是我无论如何,在同一地点…

div包含其他需要更新的项目,并且href不是链接唯一可以更改的东西,有时样式或内容会更改。@AlliedHacker:是的,您应该仍然能够更改样式、innerHTML等,而不会引起闪烁。至于div中的其他元素,我建议更新我不认为在删除和重新创建整个div时有一个简单的解决方法。看起来浏览器只会在mouseMove事件中对“hover”伪样式做出反应……而且由于在重新创建链接时它不会移动,因此它的行为不符合预期。