jQuery offset 질문입니다!!!

조회수 1088회

이미지

* 질문

$("#para").offset({left : 50 , top : 50}); 이 부분에서 left : 50 , top : 50이라는 위치를 주고

str += "left가 " + paraPosition.left + "픽셀이고, ";

str += "top이 " + paraPosition.top + "픽셀입니다. ";       

parPosition.left , paraPosition.top#para의 위치값을 출력하려고 하면 위치 값이 아닌 undefined이 출력 됩니다! 이 오류를 수정 할 수 있는지 궁금합니다 ㅠㅠㅠ

1 답변

  • jQuery는 체이닝에 특화되어 있습니다. $.offset(args...)에 args를 넘기면 앞서 셀렉팅된 jQuery 객체가 반환됩니다. 원하시는대로 top/left를 받으시려면 args 없이 $.offset() 만 호출하셔야 합니다.

    그래서 한 줄에 끝내시려면

    var paraPosition =  $("#para").offset({left : 50 , top : 50}).offset();
    

    풀어서 쓰면

    var $para = $("#para");
    $para.offset({left : 50 , top : 50});
    var paraPosition = $para.offset();
    
    • 감사합니다. offset() 개념이 이해가 안됐었는데 정리해서 설명해 주셔서 바로 이해가 됐습니다!! 알 수 없는 사용자 2019.5.13 23:43

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)