일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- MariaDB
- 로딩UI
- 파이썬
- 뉴스수집
- @keyframes
- python
- 자기개발
- 웹스크래핑
- css규칙
- Vue.js
- CSS애니메이션
- google style guide
- 코딩컨밴션
- html제거
- 코딩규칙
- vuejs입문
- 프레임워크
- 코딩가이드
- 구글스타일가이드
- 스타일가이드
- vueJS
- 구글CSS
- vue-cli
- javascript
- 투두리스트
- to do list
- 개발회고
- css rule
- CSS로딩
- 자바스크립트
- Today
- Total
코드공부방
jQuery(제이쿼리) 동적으로 생성된 요소 이벤트 및 index(인덱스) 가져오기 본문
jQuery(제이쿼리) 동적으로 생성된 요소 이벤트 및 index(인덱스) 가져오기
한 개발자분이 ajax를 통해 동적으로 불러온 이미지 리스트 중 선택된 이미지를 삭제하는 것을 jQuery코드로 구현하고 있는데 클릭 이벤트 발생부터 애를 먹고 있었다. 해당 UI와 HTML코드는 아래와 같다.
<!-- HTML -->
<div class="car-image-list">
<ul>
<!-- 동적으로 불러와진 이미지 목록(li) -->
<li><img src="/resources/images/..." alt="..."></li>
<li><img src="/resources/images/..." alt="..."></li>
<li><img src="/resources/images/..." alt="..."></li>
<li><img src="/resources/images/..." alt="..."></li>
</ul>
</div>
동적으로 불러온 이미지 목록이 아니었다면 아래와 같이 클릭한 X버튼이 속한 li태그의 삭제기능 jQuery코드로 구현할 수 있다.
//Javascript
$('.car-image-list li .btn-delete').on('click', function(){
$(this).parent('li').remove();
});
하지만 ajax등을 통해 후에 불러와진 목록이라면 삭제버튼의 클릭이벤트 부터 먹통이 될 것이다. document가 로드됐을 당시에는 이미지 목록이 document에 없었기때문에 ".btn-delete"버튼 자체를 못찾는 것이다. 아래와 같이 document자체에 이벤트를 추가하여 이 문제를 해결할 수 있다.
//Javascript
$(document).on('click', '.car-image-list li .btn-delete', function(){
//...
});
click 이벤트는 발생시켰지만 click 이벤트의 주체가 document로 바뀌었기 때문에 "$(this).prent()"로는 해당 삭제버튼을 품고있는 li태그를 찾을 수 없다. 아래와 같이 click한 삭제버튼의 index를 찾아 그 index번째의 li를 삭제해주면 된다.
//Javascript
$(document).on('click', '.car-image-list li .btn-delete', function(){
var idx = $('.car-image-list li .btn-delete').index(this);
$('.car-image-list li').eq(idx).remove();
});
원하는데로 삭제버튼을 누른 해당 이미지가 삭제되는 기능이 추가되었다.
2020/02/04 - [JavaScript] - 제이쿼리 쿠키(jQuery Cookie) 활용하여 오늘 하루 보지 않기 기능 구현하기
제이쿼리 쿠키(jQuery Cookie) 활용하여 오늘 하루 보지 않기 기능 구현하기
쿠키(cookie) 활용하여 오늘 하루 보지 않기 기능 구현하기 웹사이트 작업을 하다보면 항상 들어가는 기능이 있다. 바로 공지사항 등을 레이어팝업이나 페이지 최상단에 노출시키고 매번 노출시키면 사용자가 번거..
code-study.tistory.com
2019/09/04 - [JavaScript] - 무한스크롤 (Infinity Scroll) UI 구현하기
무한스크롤 (Infinity Scroll) UI 구현하기
무한스크롤 (Infinity Scroll) UI 구현하기 쇼핑몰이나 상품 또는 게시글 목록에서 갯수가 많아지면 자연스럽게 페이징(Page nate, pagenation 등으로도 불리운다) 처리를 하게 된다. 근데 PC에서 쓰이는 페이징..
code-study.tistory.com
2019/08/30 - [업무 도움되는] - 변수, 함수, 클래스, 아이디 네이밍 스타일 / variable, function, class, id naming style
변수, 함수, 클래스, 아이디 네이밍 스타일 / variable, function, class, id naming style
변수, 함수, 클래스, 아이디 네이밍 스타일 / variable, function, class, id naming style 프로그래밍을 할때 고민을 많이 하게 되는 것중 하나가 네이밍이 아닐까 싶다. 변수, 함수, 클래스, 아이디.. 네이밍 해..
code-study.tistory.com
'웹퍼블리셔 > JavaScript' 카테고리의 다른 글
window resize event 텀을 두고 실행하기 (resize end event) (0) | 2020.02.25 |
---|---|
window popup 새창(팝업창) 열기, 띄우기 (javascript window.open()) (0) | 2020.02.18 |
제이쿼리 쿠키(jQuery Cookie) 활용하여 오늘 하루 보지 않기 기능 구현하기 (12) | 2020.02.04 |
lozyload, 미디어 콘텐츠 지연로딩 시키기 (feat. jQuery Lazy) (0) | 2019.09.19 |
스크롤 감지하여 고정메뉴 노출/비노출 처리 이벤트 (9) | 2019.09.04 |