如何点击或双击网页上的单词来触发事件处理程序?

时间:2009-05-18 16:46:12

标签: javascript javascript-events event-handling dhtml

用于

这样的页面

http://www.answers.com

如果用户双击页面中的任何单词,将弹出一个弹出框并显示该单词的定义。

我可以想到一种方法来使用DOM脚本分解页面中的所有单词,然后让它们中的每一个都在一个单独的“span”元素下...但是如果所有文本都不是这样的话在“p”元素下,然后触发“p”元素节点来处理双击事件,但没有简单的方法来告诉单击哪个单词?

2 个答案:

答案 0 :(得分:16)

您只需向整个文档添加双击事件,如下所示:

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完全一致。

答案 1 :(得分:5)

在这里,一篇博客文章描述了如何使用jQuery执行此操作。他的测试实现类似于你想要的。即双击一个单词从字典中提取定义:

Using jQuery and Double clicks to get data