• 로그인
  • 장바구니에 상품이 없습니다.

home2 게시판 Node.js, Express 게시판 node.js $(this) 문제

node.js $(this) 문제

  • 이 주제에는 4개 답변, 2명 참여가 있으며 이현준4 년 전에 전에 마지막으로 업데이트했습니다.
5 글 보임 - 1 에서 5 까지 (총 5 중에서)
  • 글쓴이
  • #10462

    이현준
    참가자

    $('.delete').click((e)=>{

              var num = e.target.dataset.id;
              var now_click = $(this);
              //var now_click = $(this); // event가 동작하는 곳.
              $.ajax({
                method : 'DELETE', 
                url : '/delete', //요청할 경로
                data: {_id : num}, // 요청과 함께 보낼 데이터
                }).done((result) => {
                  // 페이지를 강제로 새로고침해주세요.(location~) 또는 삭제버튼을 누른 <li>요소를 제거하거나 안보이게 해주세요.
                  console.log('삭제 된거니');
                  now_click.parent('li').fadeOut();
                })
            });

    이렇게 코드를치고 실행 했을 때 '삭제된거니'는 잘 나오는데 fadeOut은 작동하질 않습니다. ('.delete').parent로 했을 때는 모든 li가 사라지는건 됩니다. 그렇다면 $(this)가 작동이 안된다는거 같은데 어떻게 해결을 해야 할지 모르겠습니다.

    #10463

    이현준
    참가자

    아 1월 글에서

    아하 .click() 안에 ()=>{} 넣으셨는데 일반 함수 function(){} 이걸로 바꿔주십시오 

    arrow function은 this의 의미를 다르게 설정해주기 때문에 이벤트리스너에선 얌전히 일반함수를 씁시다

     

    이 답변을 참고해서 쓰니까 작동을 합니다.   그런데 arrow function에서는 다르게 설정해준다는 말씀이 어떤 의미 일까요?

    #10464

    이현준
    참가자

    그리고 res.status(200).send({ message : '삭제에 성공했습니다! '});

    200을 400으로 변경을해도 그냥 삭제가 된다는건 status를 400으로 지정하든 200으로 하든 위의 코드는 다 작동을 한다는 뜻인건데... 400으로 넣었을 때는 삭제가 안되어야 되는 것이 아닌가요?

    #10469

    codingapple
    키 마스터

    function 문법을 쓰면 그거 안에 있는 this 라는 키워드의 값이 맨날 재정의가 됩니다

    함수가 있던 object자료로 재정의가 되는데

    그냥 쉽게 말하면 이벤트리스너안에서 쓰면 this는 '이벤트동작하는곳'으로 재정의가 됩니다

    ()=>{} 문법을 쓰면 그거 안의 this라는 키워드의 값을 재정의하지 않고 바깥에있던거 그대로 씁니다

     

    200, 400 이런건 서버에서 보내주는 안녕반가워~ 이런 메세지랑 똑같아서 DB데이터 삭제하고말고와는 딱히 관계는 없습니다 

     

    #10471

    이현준
    참가자

    명쾌한 답변 감사합니다!

5 글 보임 - 1 에서 5 까지 (총 5 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠