2013-12-17 3 views
0

일부 HTML 요소 위로 마우스를 움직일 때마다 호출되는 이벤트가 필요합니다. 하지만 마우스 오버, 마우스 센터 또는 마우스 오버 이벤트와 같은 요소를 입력 할 때가 아니라 움직이는 모든 시간에 실행되도록 해 줘야합니다.jQuery : event "mouseover"-like

몇 년 전에 반대 기능을 수행하려고했던 많은 사람들이있었습니다 (마우스 오버 요소가 일부 div 위로 떠 다니는 모든 시간을 시작 했음).하지만이 이벤트를 테스트 할 때마다 나는 일부 div 입력. 나는 마우스를 움직일 때마다 발사가 필요하고 나는 그 요소에 마우스 상대적인 위치를 결정할 수 있도록 감시 된 요소 위에있다.

이벤트가 누락되었거나 마우스 오버를 기반으로 일부 요소 내에서 마우스 위치를 추적하는 방법 (click, dbclick, ..)이 있습니까? http://api.jquery.com/mousemove/

$("#target").mousemove(function(event) { 
    var msg = "Handler for .mousemove() called at "; 
    msg += event.pageX + ", " + event.pageY; 
    $("#log").append("<div>" + msg + "</div>"); 
}); 
+4

'mousemove' ??? BTW, 당신은 항상 DOC를 확인해야합니다 : http://api.jquery.com/category/events/mouse-events/ –

+0

그래, 그게 전부 야. 오, 세상에, 미안해, 나 혼자서 해결하지 못해, 문자 그대로 모든 사건을 시도했지만,이 사건은 끝이났다. 고맙습니다. 지금 당황 스럽네요. – OutOfSpaceHoneyBadger

+0

부끄러워 할 이유가 없으므로 이제 어디를 봐야하는지 알 수 있습니다.) –

답변

2

mouseover 이벤트를 추가 한 다음 mousemove에 바인드하십시오. div 위로 이동하는 동안 좌표를 볼 수있는 작은 예제를 만들었습니다.

$("#mydiv").bind('mousemove', function(event) 
{ 
    var offsetleft = this.offsetLeft; 
    var offsettop = this.offsetTop; 
    var coordX = event.pageX - offsetleft; 
    var coordY = event.pageY - offsettop; 
    $("#coords").html("X: " + coordX + " Y: " + coordY);         
}); 

http://jsfiddle.net/dVqwH/2/

+0

아주 좋고 유용합니다. 고마워요! – OutOfSpaceHoneyBadger

+0

감사합니다. 전체 페이지가 아닌 div 안에 마우스 포인터의 좌표를 제공하도록 업데이트했습니다. – ER144

1

봅니다 MouseMove 명령어를 사용하는 관심있는 요소는 jquery selectors

1

당신은 내가 모든 문서에 결합의 예에서 mousemove jQuery event

$("html").mousemove(function(event) { 
    ... 
}); 

jsFiddle demo

결합 할 수 있지만, 당신은 쉽게 결합 할 수 있습니다

+1

'body'가 아닌 HTML 요소에 바인딩한다는 점을 제외하고는. – marsze

+0

@marsze right! 업데이트 : D – giammin