- 질문 게시판입니다.
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 으로 처리 해주세요
목록
번호 제목 이름 날짜 조회 추천
5395 기타이름과 생년 기재는 개인정보보호법에 위반될까요? 2 [익명] 18/09/06 2879 0
5396 의료/건강의료넷에 알러지약 관련 여쭙습니다. 9 욕정의계란말이 18/09/06 4427 0
5397 진로약대 졸업 이후 진로가 궁금합니다. 12 Mellow Logic 18/09/06 7091 0
5398 가정/육아침낭 추천받읍니다. 8 [익명] 18/09/06 2785 0
5399 IT/컴퓨터게이밍 노트북 추천 해주세요 7 파란 회색 18/09/06 3606 0
5401 기타손을 비비는 행위에 대하여.. 3 리비닌 18/09/07 4028 2
5402 기타여자친구가 다른 남자와 있는걸 목격했습니다 19 [익명] 18/09/07 4159 0
5403 의료/건강홍차넷에 어르신들이 많다고 해서 잠에 관해 질문이 있습니다. 7 [익명] 18/09/07 2686 0
5404 기타오딧세이와 시에나 중에 하나를 산다면? 28 엄마곰도 귀엽다 18/09/07 5328 0
5405 IT/컴퓨터사무실용 키보드 추천해주세요 10 나단 18/09/07 5137 0
5406 홍차넷가람마살라 시제품 추천 부탁해요! 2 naru 18/09/07 4519 0
5407 기타시계 배터리는 일반 시계방과 전용as센터에서 교체하는 게 다른지요...? 3 [익명] 18/09/08 2816 0
5408 의료/건강약의 안전성에 대해서 질문드립니다 3 psyredtea 18/09/08 4349 0
5409 IT/컴퓨터그래픽 카드 소음 및 문제 관련 질문입니다 6 사십대독신귀족 18/09/08 4927 0
5411 교육공부에 대한 태도를 고치고싶습니다. 20 [익명] 18/09/08 3478 0
5412 기타번화가 한복판에 있는 집 11 [익명] 18/09/09 3485 0
5413 기타상대가 너무 원망스러울땐 어떻게 마음을 다스리시나요? 6 [익명] 18/09/09 2333 0
5414 경제주식을 본격적으로 해보려고 합니다! 12 [익명] 18/09/09 2974 0
5415 의료/건강이정도면 탈모인가요..? 7 이직해야한다 18/09/09 6790 0
5416 IT/컴퓨터마우스 중에 고급지면서도 작은 제품 있을까요? 15 보이차 18/09/09 4892 0
5418 의료/건강한의사들 뜸 들이는거 안전한가요? 8 [익명] 18/09/09 2938 0
5419 연애[19금] 장거리 커플용 자위도구 어디서 구매하나요? 10 [익명] 18/09/09 8102 0
5420 의료/건강심리상담소 3 [익명] 18/09/09 2748 0
5421 의료/건강이틀에 한번만 잠을 자며 살아도 건강에 무리가 없을까요? 10 스스흐 18/09/10 13621 0
5422 경제미러리스 사진기 사도 안 들고 다닐까요? 12 지금여기 18/09/10 3286 0
목록

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

댓글