- 질문 게시판입니다.
Date 18/09/04 22:08:56
Name   nickyo
File #1   KakaoTalk_20180904_220517627.png (230.7 KB), Download : 3
Subject   자바스크립트/제이쿼리 ajax 연속호출 질문입니다



스크린샷도첨부했지만

'use strict'

let tbody = $('#eListTable > tbody');
let data = null;
let isClick = false;

$(function loadList(){
console.log('로드됨!');
$.getJSON(`${serverApiAddr}/json/apply/myApplyList`,{
}).done(function(resultApplyList){
data = resultApplyList;
tbody.html('');
for(var item of data.myApplyList){
$("<tr>").html(`<th scope="row">${item.lectureNo}</th>
                        <td>${item.lectureSubject}</td>
                        <td>${item.lectureName}</td>
                        <td>${item.lectureRoom}</td>
                        <td>${item.lectureStartDay}</td>
                        <td>${item.lectureEndDay}</td>
                        <td>${item.lectureMember}/${item.lectureMaxMember}</td>
                        <td><button type="button" id="cancel" class="btn btn-outline-success">철회하기</button>`).appendTo(tbody);
}
if(isClick){
return;
}
isClick = true;
tbody.on('click', '#cancel', function(event) {
isClick = false;
    event.preventDefault();
    $.getJSON(`${serverApiAddr}/json/studentlist/applyDelete?lectureNo=${item.lectureNo}`,
     function(result){
     if(result.status =="success"){
     swal('강의신청을 철회하였습니다!');
     }
    })
});
});
});

swal->alert 이후에 location.href 로 작동주소를 주니 앨럿 뜨기도 전에 휙 날아가버려서
일단 location을 빼고 전역변수를 설정해서 클릭이 여러번 일어나지 않게 줬는데 작동을 안하는지 계속 중복클릭으로 여러번 ajax호출이 들어갑니다 ㅠㅠ setTimeout 으로도 해봤는데 잘 안되더라고요. 문제는  tbody.on 에서 클릭이벤트가 여러번 일어나는걸 방지하고 싶습니다 ㅠㅠ 초보 아마추어 개발훈련생에게 조언좀 해주세요 ㅠ



0


않이 스택오버플로우에서는 셋타임아웃이랑 변수줘서 조건문으로 가르게 하는걸로 다 땡큐 세이브 마이데이 이랬는데 나는 왜 세이브할수가 없어 왜 나는 멍청해 허어헐어허허엏ㅇ헝 팀원새기들아 고쳐 고치라고 다어디갔어
어 오 일단은 클릭 여러번은 안되게 했습니다..했나? 한건가? 오 했습니다
이제 새로고침만 알럿 뒤에 잘 되게하면됨..
April_fool
셀프해결은 ㅊㅊ
아 아니네여 실패함 클릭후에 변수상태바꿔서 작동하는게 아니고 클릭후에 언디파인드 에러가 나서 한번만 되는거였음
하...
ㅠㅠㅠㅠㅠ



도와줍쇼 굽신굽신
April_fool
요새 코딩을 안 해서 감이 다 죽었는데… 여튼, 한 가지 확인할게요. 왜 tbody에 클릭 이벤트 등록하는 부분을 loadList 함수 속에 넣으셨나요?
전부 비동기처리하는거라서 위쪽 ajax가 컨트롤러 통해서 객체 받고 태그를 html에 넣어준 뒤에 tbody 이벤트가 들어가야해서 넣었습니다. 흐 근데 지금 다시 시도하면서 중복클릭은 해결했는데 스윗앨럿이 location.href를 그 뒤에 등록하면 엄청 빠르게(확인도안눌렀는데) 넘어가서 그게 문제네요. alert 기본으로 하면 안그러는데.. 스윗앨럿이랑 뭔가 안맞는건지 ㅠㅠ 햐 감사합니다
노루야캐요
전체 코드를 본 게 아니라서 정확히는 모르겠지만, tbody에 이벤트 리스너 등록하는 부분이 위험해 보이네요. 이벤트 리스너가 여러 번 등록될 가능성이 있어보이는데, 한 번만 등록되도록 on 대신에 다른 함수를 사용해야 할 것 같습니다. 아마 once 아니면 one일거에요.
오 확인해보겠습니다 감사합니다
당장 보이는 문제점으론
1. tbody에 이벤트 리스너 등록하는것 부터 완전 밖으로 빼셔야 하구여
2. 철회하기 버튼에 cancel이라 id 지정된것 클래스로 바꿔주시고
3. isClick 같이 변수로 클릭 상태 유지하지 마시고 이벤트 발생한 버튼을 disabled 상태로 만들어 주거나 하세여
4. swal 호출 다음 작업은 promise then 으로 처리 해주세요
목록
번호 제목 이름 날짜 조회 추천
공지 질문 게시판 이용 규정 11 토비 15/06/19 25683 4
16970 의료/건강탈장 수술 관련, 알레르기 문제와 대형병원 진료 절차. 4 Sensorylab 25/08/30 286 0
16969 IT/컴퓨터해외에서 쿠플을 봐야 하는 상황인데 조언을 구합니다. 13 당근매니아 25/08/29 411 1
16968 기타중고차로 첫 차 구매 8 은하꾸리 25/08/27 452 0
16967 가정/육아20만원 내외 돌 유아용 그림책선물 7 kaestro 25/08/27 264 0
16966 의료/건강선생님들 심장쪽이 아픈데요. 1 활활태워라 25/08/27 334 0
16965 기타프라모델용 도구 추천해 주세요 6 오쇼 라즈니쉬 25/08/27 206 0
16964 기타책 추천을 받고 싶습니다. 24 쉬군 25/08/27 506 0
16963 기타길에 떨어진 돈을 보았습니다. 4 나만한 고양이 25/08/25 537 0
16962 법률내일 부모님 모시고 법원에 갑니다 11 거소 25/08/25 731 1
16961 여행갤럭시 esim활성화 6 치즈케이크 25/08/25 427 0
16960 게임TFT 증강선택? 보는법 10 토비 25/08/24 379 0
16959 의료/건강담관 내시경에 대해 문의드립니다. 2 눈팅중 25/08/24 253 0
16958 경제조직검사 결과통보전에 암보험을 보강/가입 해야될까요..? 6 [익명] 25/08/24 706 0
16957 기타타이어 교체 질문 5 방사능홍차 25/08/23 311 0
16956 기타자전거를 새로 샀는데 1단과 6단이 안됩니다 3 2025 25/08/22 512 0
16955 IT/컴퓨터구글원 요금제 ->구글 AI 요금제 업그레이드? 6 Picard 25/08/22 535 0
16954 의료/건강신발 문의 드립니다 11 2025 25/08/22 404 0
16953 문화/예술노래에서 표절의 기준 1 물리물리 25/08/21 361 0
16952 의료/건강부종에 좋은 발 받침대 추천 요청 7 anna_K 25/08/21 347 0
16951 의료/건강건강검진 결과입니다. 추가적 진료 및 치료가 필요할까요? 21 호미밭의파스꾼 25/08/21 756 3
16950 기타오프라인으로 할수 있는 모바일게임? 17 치즈케이크 25/08/20 631 0
16949 기타레이, 비슷한 차급의 경차를 타시는 분들 계실까요? 8 메리메리 25/08/20 613 0
16948 여행기내용 메모리폼 목베개를 아예 의료용 경추부목으로 사는 건 어떨까요 7 2025 25/08/19 543 0
16945 기타올해 입사한 신입인데 아직도 계속 혼나면서 적응을 못하는 것 같아요.. 29 [익명] 25/08/17 1307 0
목록

+ : 최근 2시간내에 달린 댓글
+ : 최근 4시간내에 달린 댓글

댓글