对于像这样的页面
如果用户双击页面中的任何单词,将出现一个弹出框并显示该单词的定义。
我可以想出一种方法来使用 DOM 脚本来分解页面中的所有单词,然后让它们中的每一个都放在一个单独的“span”元素下......但是如果所有文本都在一个“p”元素,然后“p”元素节点被触发来处理双击事件,但是没有简单的方法来判断点击了哪个单词?
对于像这样的页面
如果用户双击页面中的任何单词,将出现一个弹出框并显示该单词的定义。
我可以想出一种方法来使用 DOM 脚本来分解页面中的所有单词,然后让它们中的每一个都放在一个单独的“span”元素下......但是如果所有文本都在一个“p”元素,然后“p”元素节点被触发来处理双击事件,但是没有简单的方法来判断点击了哪个单词?
您只需将双击事件添加到整个文档,如下所示:
function get_selection() {
var txt = '';
if (window.getSelection) {
txt = window.getSelection();
} else if (document.getSelection) {
txt = document.getSelection();
} else if (document.selection) {
txt = document.selection.createRange().text;
}
return txt;
}
$(document).dblclick(function(e) {
var t = get_selection();
alert(t);
});
如果您只希望它适用于选定的段落,您可以将选择器更改为p.myclass
或类似的东西。这取决于双击一个单词会在浏览器中突出显示它的事实。老实说,不确定这是否正是 answers.com 的做法。
你去吧,一篇博客文章描述了你如何使用 jQuery 做到这一点。他的测试实现和你想要的差不多。即双击一个单词从字典中提取定义: