- 질문 게시판입니다.
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 24577 4
16705 IT/컴퓨터유심 재활용할 수 있는 통신사가 있나요? 4 카라멜마끼아또 25/04/27 438 0
16704 여행강원도 (철원) 여행 팁 부탁드립니다 6 빈둥 25/04/27 206 0
16703 진로금융권 IT 인프라 직무 커리어에 대해서 질문 드립니다. 2 전차남 25/04/27 286 0
16702 문화/예술영화 혹은 드라마를 하나 찾고 있습니다. 4 알로에비누 25/04/26 376 0
16700 기타살려주세요 사무실이 넘 더워요 22 니나 25/04/25 784 0
16699 경제퇴직금 중도해지요 2 [익명] 25/04/24 429 0
16698 의료/건강실비보험에 대해 5 야얌 25/04/24 498 0
16697 기타30대 남자 선물용 질문드립니다 12 유하 25/04/24 477 0
16696 IT/컴퓨터생성형AI로 파워포인트 슬라이드도 잘 만들어지나요? 3 열한시육분 25/04/24 408 0
16695 의료/건강사무실에서 할 수 있는 유산소 운동이 있을까요? 27 보이차 25/04/23 692 0
16693 여행일본 (벳부) 여행 일정 한 번만 더 조언 부탁드립니다. 10 쉬군 25/04/22 332 0
16692 교육학교에서 아들이 다쳤습니다. 12 [익명] 25/04/22 744 0
16691 IT/컴퓨터가정용프린터기 추천부탁드려요 9 Evergreen 25/04/22 379 0
16690 IT/컴퓨터만약 어떤 커뮤니티가 전부 AI 필터링을 한다면 29 단비아빠 25/04/21 696 0
16689 의료/건강하소연 겸 질문입니다. 편찮으신 어머니 문제 8 [익명] 25/04/20 810 0
16688 기타거울로 반사된 빛으로 곰팡이를 퇴치할 수 있나요? 1 2025 25/04/20 507 0
16687 기타이런 영상은 어떤 장비로 찍은 것일까요? 6 홍당무 25/04/19 601 0
16686 게임급 슈퍼패미컴 미니 클래식이 끌리는데 2 퍼그 25/04/19 364 0
16684 진로IB 업무 중 진로 고민 8 움직여 25/04/19 630 0
16683 진로아이 진로에 관한 고민 7 단비아빠 25/04/18 495 0
16682 문화/예술관광으로 중국 도시를 택할 메리트가 있을까요 11 열한시육분 25/04/18 623 0
16681 기타강력접착된거 떼는방법이 있을까요..? 14 even&odds 25/04/18 467 0
16680 기타차량 폐차 관련 질문입니다. 26 메존일각 25/04/17 604 0
16679 법률부동산 복비 관련 문의드립니다. 6 [익명] 25/04/17 450 0
목록

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

댓글