- 질문 게시판입니다.
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 25236 4
16844 체육/스포츠이온음료 분말로 드시는 분 계신가요? 10 고요한숲 25/07/07 301 0
16843 교육영어 블라블라한 선생님들 질문있습니다! 18 + Mandarin 25/07/07 433 1
16842 여행서울 숙소를 찾습니다. 9 흰긴수염고래 25/07/07 303 0
16841 경제미국 주식 하는 회원님들. 여러 증권사를 사용하시는지요? 10 오리꽥 25/07/07 401 0
16840 기타복도식 아파트에 가스관에 우산 거치 괜찮은건가요? 4 알로에비누 25/07/06 629 0
16839 의료/건강남성 니플패치 추천 부탁드려요 5 [익명] 25/07/06 366 0
16838 과학수능이나 모고 같이 평가원 주관인 시험에서 8 물리물리 25/07/05 498 0
16837 기타출퇴근 가방 추천 받고 싶어요... 26 dongri 25/07/05 665 0
16836 체육/스포츠러닝할 때 급수 방법? 11 두부곰 25/07/05 484 0
16835 기타서울에서 다양한 전통주를 취급하는 매장을 추천 부탁드립니다. 23 자공진 25/07/04 613 0
16834 홍차넷홍차넷 제재 풀리는건 수동입니까 9 노는꿀벌 25/07/04 540 0
16833 댓글잠금 IT/컴퓨터아이폰 문자 내보내기 기능 1 [익명] 25/07/04 380 0
16832 기타인테리어 관련 고민이 있습니다 12 당근매니아 25/07/03 409 1
16831 기타서울에서 가족사진 촬영 잘하는 곳을 알고 싶어요! 6 Klopp 25/07/03 263 0
16830 기타인테리어 중문 질문드려요 2 어둠달골짜기 25/07/02 384 0
16829 경제내집마련디딤돌 대출 질문 11 [익명] 25/07/01 563 0
16828 의료/건강아버지께서 당뇨에 걸리셔서 고민입니다... 5 빈U 25/06/30 697 0
16827 기타주류 보관 및 음용 타이밍 등 질문드려요. 4 wwe13kane 25/06/29 413 0
16826 문화/예술요즘 한국 음악 생태계 질문? 2 영원한초보 25/06/29 414 0
16825 연애남자친구와의 이별을 고민 중입니다. 50 깍두기 25/06/28 1765 0
16824 기타영어학습용으로 스픽 결제해서 쓸만한지요? 6 홍당무 25/06/27 544 0
16823 연애김이 식은 프로포즈를 어떻게 해야 감동있게 만들수 있을까요? 23 [익명] 25/06/27 871 0
16822 가정/육아부모님 핸드폰 청약철회 맟 번호이동 관련 문의드립니다 3 G.a. 25/06/26 339 0
16821 가정/육아선물할 그릇 추천해주세요! 40 니나 25/06/26 700 2
목록

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

댓글