- 질문 게시판입니다.
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 24693 4
16734 여행창원지법 근처 음식점 추천 9 방사능홍차 25/05/15 340 0
16733 연애고착화된 관계+나이 차이 많이 나는 분에게 대쉬 질문입니다. 10 + [익명] 25/05/15 883 0
16732 IT/컴퓨터컴퓨존에서 결제하기 직전인데 질문이 몇가지 있어서요👉🏻👈🏻 8 even&odds 25/05/14 533 0
16731 IT/컴퓨터아이폰 연락처 질문 8 Mandarin 25/05/14 217 0
16730 의료/건강생리통이 너무 심하네요. 10 [익명] 25/05/13 663 0
16729 연애제가 강하게 화를 내야하는 상황이 맞는건가 싶습니다.. 44 [익명] 25/05/12 1280 0
16728 경제학동 세종한우 질문 2 camy 25/05/12 362 0
16727 IT/컴퓨터스마트워치를 하나 사볼까 하는데요. 16 메존일각 25/05/12 438 0
16726 진로좋아하는 일 하는게 행복한거 맞나요-_-? 10 활활태워라 25/05/12 800 2
16725 기타자신은 특별하다고 주장하는 ai 26 + [익명] 25/05/11 806 0
16724 기타키보드 질문입니다 2 김치찌개 25/05/12 180 0
16723 기타자동차종합보험 하루만 가입하기 8 다람쥐 25/05/11 416 0
16722 기타집 정리하다 찾은 이게 뭘까요?? 12 데자와왕 25/05/09 997 0
16721 여행제주도 말고기 맛이가 있는 곳을 찾읍니다 5 DogSound-_-* 25/05/08 441 0
16720 의료/건강골목 및 일반 도로연수 22 은하꾸리 25/05/07 611 0
16719 의료/건강갑상선 크기가 많이 줄어들었다면 갑상선기능저하증 가능성이 많이 높을까요? 2 [익명] 25/05/07 511 0
16718 가정/육아아내가 이혼하자고 합니다. 10 [익명] 25/05/07 1406 0
16717 의료/건강여자아이 눈꺼풀 물사마귀 제거 문의드립니다.(사진추가) 1 [익명] 25/05/07 349 0
16716 게임사쇼2 하오마루 대사 질문이용 4 택시기사8212 25/05/06 313 0
16715 문화/예술오디오북 추천 부탁드립니다 7 다람쥐 25/05/05 303 0
16714 IT/컴퓨터유니콘 프로 vs 애드가드 2 방사능홍차 25/05/02 432 0
16713 기타정말로 6월 2일 최종 선고가 나오는 것이 예고될때 사전투표율 추이 5 이이일공이구 25/05/02 974 0
16712 IT/컴퓨터Windows 10에서 11로 올리기전 포맷 필요성? 2 열한시육분 25/05/02 393 0
16711 기타'이게 맞아?'라는 표현이 언제부터 유행했을까요? 2 토비 25/05/02 677 0
목록

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

댓글