TIL 200225

조양권·2021년 5월 17일

TIL

목록 보기
4/24

1. 오늘

  • 플랫폼 판매 페이지에서 다른 플랫폼 판매 페이지로 넘어가는 기능을 구현하려했다.
  • 해당 플랫폼을 드롭다운에 담아 드롭다운옵션을 select하는 이벤트로 넘어간다.
$('.change_platform').click(function(){
      if ($(this).value('id') == 'cp_uplay'){
        $('#card_container').empty();
        callpage('/test_info2');
        alert('유플')
      }else if ($(this).value('id') == 'cp_gog') {
        $('#card_container').empty();
        callpage('/test_info');
        alert('GOG')
      }
    });
ajax요청을 callpage함수로 선언하고 url값을 파라미터로 주었다.
$(document).ready(function (api_url) {
      $.ajax({
        type: "GET",
        url: api_url,
        data: [],
        success: function(response){
...
}
});
})

2. 문제

지금은 파라미터로 설정돼있는 url을 처음엔 callpage함수 밖에서 변수로 선언했었다.

var url = "/test_info";
      function callpage() {
        $.ajax({
          type: "GET",
          url: url,
          data: [],
          success: function(response){...
}
});
})

이후 드롭다운의 클릭이벤트에 조건문 실행내용에 변수값을 변경하여 callpage를 재실행하게끔했다.

$('.change_platform').click(function(){
      if ($(this).value('id') == 'cp_uplay'){
        $('#card_container').empty();
        url = "/test_info2";
        callpage();
        alert('유플')
      }else if ($(this).value('id') == 'cp_gog') {
        $('#card_container').empty();
        url = '/test_info1'
        callpage();
        alert('GOG')
      }
    });

이는 오류의 가능성이 너무많으므로 위의 방법으로 수정했다.
수정과정에서 함수의 중복선언이 이루어졌다.
현재 이런 방식으론 모든 페이지에 중복되는 코드를 입력해야한다. 메인페이지를 기준으로 분기 해서 sort조건을 다르게 주는 방식으로 전면수정이 필요하다.

profile
할 수 있는 것이 늘어나는 즐거움

0개의 댓글