【发布时间】:2023-03-23 12:20:02
【问题描述】:
你知道高亮单词和添加鼠标悬停事件的最有效方法吗?
我有文本,我想制作某种单词解释字段,所以当用户将光标放在单词上时,我调用 AJAX 到字典并显示他的意思。
我有两个想法:
1)在显示文本之前,将每个单词放入<span onmouseon="my_foo("word");"> wrapper。
例如:
<span onmouseon="my_foo("Hello");">Hello</span><span onmouseon="my_foo("world");">world</span>
但我认为这会使页面严重超载。
2) 当用户在一个区域按住光标超过 0.5 秒时,我得到指针坐标,计算显示的单词(我不知道是否可能)并进行 AJAX 调用。
你认为什么更好,更容易编码?
【问题讨论】:
-
我不认为 2 是可能的,因为不同浏览器中字体渲染的差异。你永远不会确切地知道它是哪个词。我会在服务器端包装所有内容。或 onLoad 将所有内容包装在跨度中。悬停在该类的任何跨度上都会调用 ajax
-
2 是可能的。但是您将面临不同浏览器的问题。我确实以相同的方式实现了注释功能。这很艰难。对于 1,在事件函数定义中有更好的方法,您可以获取 span 的内部文本,因此您不需要将字符串放在每个调用中。
-
情况 1 的性能如何?还好吗?例如,我的意思是 5000 字的文本。
标签: javascript jquery html