2017-04-05 8 views
0

사용자가 마우스를 놓고있는 텍스트를 감지 할 수있는 방법을 찾을 수 없습니다. onmouseover 이벤트가이 기능을 지원하지 않는 것 같습니다. 이것을 할 수있는 방법이 있습니까? 예를 들어JavaScript가 moused 된 텍스트를 가져옵니다.

https://www.w3schools.com/jsref/event_onmouseover.asp

,이 항에서 "예"를 통해 사용자가 마우스를 올리면, 나는 단지 그들이 마우스를 올려 놓으면 있다고, 그들이 "예"마우스를 올려 놓으면되었다는 것을 감지 할 수하려는 경우 단락 요소.

편집 : 나는 내가 필요한 것에 너무 애매하다고 생각한다. 기본적으로 내가 구현하려고하는 것은 동적 텍스트를위한 팝업 사전입니다. 사용자가 단어 위로 마우스를 가져 가면 복합 단어의 일부가 될 수 있으므로 단어뿐 아니라 단락의 위치도 함께 표시하여 복합어인지 확인할 수 있습니다. 각 단어/복합어 주변을 HTML로 사전 처리해야하는 것처럼 들립니다.

+0

아마도이 질문에 대답 할 수 있습니다. 스팬의 각 단어가 가장 좋은 방법 인 것 같습니다. http://stackoverflow.com/questions/7563169/detect-which-word-has-been-clicked-on-within-a-text – iCode

답변

0

당신은 그냥이 예제와 같이 범위 내에서 그것을 포장 :

<p> 
Words Words Words Words Words <span onmouseover="alert('Mousing over A nice word!');">A Nice Word</span> Words Words Words Words 
</p> 

https://jsfiddle.net/a4q6gqs2/

+0

이 방법이 효과적이지만 조금 있습니다. 번거롭기 때문에 이것을 동적 데이터와 함께 사용하고 모든 단어에 이벤트 리스너를 추가해야합니다. 나는 이것을하지 않고도 이것을 할 수있는 방법이 있기를 바랐다. 그리고 나는 컨텍스트에 대한 정보를 갖고 싶다는 점에서 더 복잡하다. 그래서 나는 나의 예를 들어 사용자가 유혹하고 있다는 것을 알고 싶다. "단락"의 "예"를 넘어서고, 단락의 단락과 그 단락의 위치를 ​​알고 싶습니다. –

+0

동적 데이터를 처리하는 코드 (또는 그 일부)를 다른 방법으로 제공 할 수도 있습니다. – Konstantinos

1

내가 다른 방법으로, 당신은 예를 들어 A에 대해, differents의 html 태그에있는 모든 단어를 래퍼 there'snt 필요가 있다고 생각 " 스팬". 아래 코드로이 작업을 수행 할 수 있습니다.

// wrap words in spans 
$('p').each(function() { 
    var $this = $(this); 
    $this.html($this.text().replace(/\b(\w+)\b/g, "<span>$1</span>")); 
}); 

// bind to each span 
$('p span').hover(
    function() { $('#word').text($(this).css('background-color','#ffff66').text()); }, 
    function() { $('#word').text(''); $(this).css('background-color',''); } 
);