2009-05-18 4 views
10

방법 이벤트 핸들러를 트리거하기 위해 웹 페이지에서 단어를 클릭 또는 더블 클릭을 만드는 방법? 페이지에 대한

http://www.answers.com

페이지에서 단어의 사용자를 두 번 클릭이하는 팝업 상자가 표시 및 그 단어에 대한 정의를 표시 할 경우

있다.

내가 그들 각각 별도의 "범위"요소 아래에 갈 수 있도록 다음 페이지에있는 모든 단어를 깰 DOM 스크립팅을 사용하는 방법을 생각할 수 있습니다 ...하지만 그렇지 않으면 그것은 사실이 아니다

하는 경우 모든 텍스트가 "p"요소 아래에 있으면 "p"요소 노드가 두 번 클릭 이벤트를 처리하도록 트리거되지만 어떤 단어를 클릭했는지 쉽게 알 수있는 방법이 없습니까?

+0

좋은 질문, 깔끔한 기능, 나에게 몇 분을 이길 –

답변

15

는 간단히과 같이, 전체 문서에 더블 클릭 이벤트를 추가 : 만이 선택 단락에서 작업하고 싶었다면

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이 정직한 방법 인 지 정확히 알지 못합니다.

+0

이 질문을보고됩니다. 나는 똑같은 제안을하려했다. +1 –

+0

나는 이것을 작동시키는 것처럼 보일 수 없다. http://erxz.com/pb/25570 – radicalmatt

+0

죄송합니다. 문제는 사용자 정의 getSelection 함수가 window.getSelection을 파괴한다는 것입니다. 쉬운 수정은 사용자 정의 함수의 이름을 변경하는 것입니다. – radicalmatt

5

은 여기, 당신이 사용하는 jQuery를 어떻게 설명 블로그 문서를 참조하십시오. 그의 테스트 구현 당신이 원하는 비슷합니다, 즉 더블 클릭이 단어가 사전에서 정의를 끌어 :

Using jQuery and Double clicks to get data

관련 문제