Как сделать щелчок или двойной щелчок по слову на веб-странице, чтобы вызвать обработчик события?
Для страницы типа
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, если честно.
Ответ 2
Вот, пожалуйста, статья в блоге, которая описывает, как вы делаете это с помощью jQuery. Его реализация теста похожа на то, что вы хотите. А именно, двойной щелчок по слову вызывает определение из словаря:
Использование jQuery и двойных кликов для получения данных