2011-02-07 2 views
1

이 페이지 =>http://api.jquery.com/offset은 필요한 CSS를 적절하게 설명하지 못합니다. CSS 주제에 관한이 주제와 관련하여 내가 읽은 5 가지 질문 중 하나도하지 마라.offset.left에 필요한 CSS는 무엇입니까

1) 어떤 CSS로 $(this).offset.left이 '정의되지 않음'을 반환합니까?

2) 다른 문제 (offset.left 복잡하게 알고 예. $("object").hide() 원인 offset.left가 정의되지 않은 반환 할 것인가? 등)

을 내가 뭘 CSS를 offset.left 죽일 것이다 알아야 할 필요가있다 그리고 어떤 CSS가 적절한 가치를 반환 할 것인가.

THNX 것은

답변

4

$(this).offset().left는 항상 값을 반환합니다. jQuery는 브라우저가 페이지 요소를 렌더링하는 상자 모델을 기반으로이 값을 결정합니다.

CSS는 정의 된 언어를 통해 오프셋 값을 제어하는 ​​방법을 제공하지만 렌더링 된 후에는 항상 값을 갖습니다.

귀하의 질문에 대한 답변 (그리고 이전에 찾고있는 답을 찾지 못한 이유)은 jQuery와 CSS가 모두 기본 기술을 제어/읽는 것입니다. jQuery 이 아니며 CSS 규칙을 읽습니다.


당신은 다음 요소를 숨기 박스 모델의 더 이상 일부가 없으며, offset().left 0의 값을 반환하는 경우 :

데모 :http://jsfiddle.net/9xaCe/

+0

'this'가 무엇인지에 따라 가끔 'undefined'를 반환 할 수 있습니다. 나는 무엇이 $ ('someobject')를 일으키는 지 알 필요가있다. offset.left는 'undefined'가된다. 예를 들어, $ ('someobject')가 이전에 .hide()에 의해 숨겨져 있다면 그것은 오프셋되어 있기 때문에 'undefined'가됩니다. 이것이 하나의 예입니다. 또한 div # someobject가 position이 아닌 경우 : relative; CSS에서 jquery는 div # someobject가 상황에 따라 '정의되지 않음'이라고 말할 수 있습니다. –

+0

offset.left와 관련하여 너무 많은 질문과 문제점이있는 이유가 있습니다. –

+0

DEMO에 감사드립니다. 문제는 여기에 숨겨지기 시작한 것이 아닙니다. http://jsfiddle.net/5CYUn/ –

1

당신이 참조 된 페이지가 말한다 :

jQuery는 숨겨진 요소의 오프셋 좌표 오프셋을 가져 오는 것을 지원하지 않습니다.

요소가 숨겨져 있다면 .offsetundefined을 반환합니다. 귀하의 질문 2에 대한 답변은 그렇습니다.

+0

하지만 그것은 '정의되지 않은'원인이 단 한 가지입니다 내 대답은 css 및 js 문제가 '정의되지 않은'원인 및 오프셋 및 보류 및 정수 필요한 것입니다. . –

+0

내가 정말로 누군가에게하고 싶은 것은이 주제에 대한 jquery wiki를 업데이트하는 것입니다. 그렇지 않으면 우리가 어둠 속에서 촬영하기 때문입니다. 나는 CSS 에디터 앞에 앉아서 뭔가 효과가있을 때까지 애트리뷰트를 켜고 끄는 것을 좋아하지 않는다. wiki 페이지는 '정의되지 않은'css 또는 js와 관련된 문제 유형을 설명해야합니다. –

+0

감사합니다 앤드류 나는 다시 바보짓을하고있었습니다. –