Как сделать щелчок или двойной щелчок по слову на веб-странице, чтобы вызвать обработчик события?

Для страницы типа

http://www.answers.com

если пользователь дважды щелкнет любое слово на странице, появится всплывающее окно с указанием определения этого слова.

Я могу придумать способ использовать сценарии DOM, чтобы разбить все слова на странице, а затем заставить каждое из них перейти под отдельный элемент "span"... но в противном случае это не правда, что если весь текст находится под элемент "p", затем запускается узел элемента "p" для обработки события двойного щелчка, но нет простого способа определить, по какому слову щелкнули?

Ответ 1

Вы просто добавляете событие двойного щелчка ко всему документу, например:

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 или что-то в этом роде. Это зависит от того, что двойной щелчок слова выделяет его в браузерах. Не совсем уверен, что именно так, как это делает answer.com, если честно.