i 태그 사용 시 click event 안먹는 이유
976
작성한 질문수 2
안녕하세요. 강의 들으면서 하나하나 따라했는데 i태그 사용하여 v-on:click 시, 클릭이벤트가 전혀 먹히지 않아 일단 span태그로 감싸 사용했습니다.
강사님은 i태그만 사용해도 이벤트가 적용 되는데 왜 안되는지 이유를 알 수 있을까요?
제 코드는 아래에 있습니다.
<template>
<div>
<ul>
<li
v-for="(todoItem, index) in todoItems"
v-bind:key="todoItem.item"
class="shadow"
>
<span v-on:click="toggleComplete(todoItem, index)">
<i
class="checkBtn fas fa-check"
v-bind:class="{ checkBtnCompleted: todoItem.completed }"
></i>
</span>
<span v-bind:class="{ textCompleted: todoItem.completed }">
{{ todoItem.item }}
</span>
<span
class="removeBtn"
v-on:click="removeTodo(todoItem, index)"
>
<i class="fa-regular fa-trash-can"></i>
</span>
</li>
</ul>
</div>
</template>
<script>
export default {
data: function () {
return {
todoItems: [],
};
},
methods: {
removeTodo: function (todoItem, index) {
localStorage.removeItem(todoItem);
this.todoItems.splice(index, 1);
},
toggleComplete: function (todoItem, index) {
todoItem.completed = !todoItem.completed;
localStorage.removeItem(todoItem.item);
localStorage.setItem(todoItem.item, JSON.stringify(todoItem));
},
},
created: function () {
if (localStorage.length > 0) {
for (let i = 0; i < localStorage.length; i++) {
localStorage.getItem(localStorage.key(i));
this.todoItems.push(
JSON.parse(localStorage.getItem(localStorage.key(i)))
);
}
}
},
};
</script>
<style scoped>
ul {
list-style-type: none;
padding-left: 0px;
margin-top: 0;
text-align: left;
}
li {
display: flex;
min-height: 50px;
height: 50px;
line-height: 50px;
margin: 0.5rem 0;
padding: 0 0.9rem;
background: white;
border-radius: 5px;
}
.removeBtn {
margin-left: auto;
color: #de4343;
}
.checkBtn {
line-height: 45px;
color: #62acde;
margin-right: 5px;
}
.checkBtnCompleted {
color: #b3adad;
}
.textCompleted {
text-decoration: line-through;
color: #b3adad;
}
</style>
답변 1
Chrome 개발자 모드 확장이 안됨
0
272
1
깃 권한 요청드립니다
0
118
1
vue.js 중급 리포지토리 권한 관련
0
118
1
vuex + axios 질문 있습니다!
1
198
2
깃 권한 요청드립니다!
0
162
1
강의 깃주소 문의
0
145
1
router-view에 props를 어떻게 넘길 수 있나요?
1
281
2
Vue가 인식되지 않는 현상
0
207
1
기초강좌는 어디있나요?
1
193
2
App.vue가 필요한 이유
0
193
1
getter가 정의되어 있지 않아 오류가 발생합니다.
1
256
1
뷰 라이프사이클
1
188
1
TSLint 말고 TSLint Vue 설치해도 되나요?
1
369
3
로컬 스토리지는 어디에 있나요?
1
282
1
vuex 실행시 새로고침해야지만 리스트에 나타나는 현상
1
391
2
export default 관련한 질문
0
357
2
깃허브 vue-todo 접근불가에 따른 확인요청
1
355
2
깃허브에 문제있는것 같습니다.
1
275
2
인프런 강의 재생 화면 구성 변경 문의드립니다
1
306
2
addTodo Helper 함수 적용
1
244
1
vuex 헬퍼 전역 설정
1
248
2
github 권한요청드립니다.
1
258
2
이벤트 위치에 대한 궁금증 입니다.
1
224
2
구조 차이에 대한 문의
1
347
2





