2010-06-17 5 views
0

예를 들어 mousemove 이벤트 핸들러를 div에 사용하고 이벤트의 layerX 속성을 확인하면 내 마우스가 div와 같은 위치에있는 요소 (예 : 이미지)를 입력하면 변경됩니다.jQuery event.layerX/Y는 이벤트를 트리거 한 요소와 관련이 없습니다. 맞습니까?

the jQuery Event object documentation에 따르면 이는 W3C DOM Level 3 사양을 따라야합니다. 하지만 the MouseEvent interface에 대한 layerX/Y 속성에 대한 언급이 없으므로 사양에 따라 동작이 궁금합니다.

내게는 layerX/Y가 중첩 된 요소의 layerX/Y를 원한다면 항상 이벤트를 발생시키는 레이어에 상대적으로 레이어 X/Y를 원하는 것처럼 보입니다. 다른 단계 (버블 링) 또는 내 처리기를 중첩 된 요소에 연결합니다.

내 질문은 (다소 주관적인) : layerX/Y는 어떻게 작동해야합니까?

답변

1

나는 layerx/y가 (상대 또는 절대) 위치를 가진 발사 요소의 첫 번째 부모 노드로부터의 오프셋이라고 생각합니다. 어느 쪽이든, jQuery를이 같은 위치와을 찾는 더 나은 방법이있다 또한 LayerX/Y는 모든 브라우저에서 동일하게 보장 할 수 없습니다, 그래서 당신은 또한 사용할 수 있습니다 그것을

+0

덕분에, 나는 layerX과 layerY가 크롬 V17 –

+0

element.offset의 조합을 사용하는 코드를 변경 페이지가 아니라 offsetParent를 기준으로합니다. 모든 offsetParents를 반복해야합니다. – rxgx

2

를 사용하지 것이다 :

var x = e.pageX - this.offsetLeft;

var y = e.pageY - this.offsetTop;

jQuery element.offset() 속성을 사용하는 것과 거의 같지만이 메서드는 기본 offsetTop 및 offsetLeft 속성을 사용합니다. 의 바닥 근처에서 발견

:. jQuery - Tutorials: Mouse Position

+0

offsetLeft 및 offsetTop에 사용되지 않습니다() 왼쪽과 e.clientX –

관련 문제