๐ ๋ฐ๋๋ผ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ๊ฒ์ ๊ธฐ๋ฅ ๊ตฌํํ๊ธฐ
๊ฐ์ธ๊ณผ์ ๋ก ๋ฐ๋๋ผ ์๋ฐ์คํฌ๋ฆฝํธ๋ง ์ด์ฉํด์(์ ์ด์ฟผ๋ฆฌ ์ ์ธ) ํ์ด์ง๋ฅผ ๋ง๋ค์ด ๋ดค๋ค.๐
๊ทธ์ค์์ ์ค๋์ ๊ฒ์ ๊ธฐ๋ฅ์ ๋ํ ๋ถ๋ถ์ ์ ์ผ๋ ค๊ณ ํ๋ค.
๐ก ๊ตฌ์
- ๊ฒ์ ๋ฒํผ์ ๋๋ฅด๊ฑฐ๋, ์ํฐํค๋ฅผ ์ ๋ ฅํ๋ฉด ๊ฒ์์ด ๋๋ค.
- input์ ์ ๋ ฅ๋ ๊ฐ์ ๊ฐ์ง๊ณ ์์, ๊ฐ์ง๊ณ ์๋ ๋ฐ์ดํฐ ๋ค๊ณผ ๋น๊ต ํ๋ค.
- ๋์ผํ ๊ฒ ๋ฐ์ดํฐ๊ฐ ์๋ค๋ฉด ๊ทธ๊ฒ๋ค์ ๋ณด์ฌ์ฃผ๊ณ , ๋์ผํ ๋ฐ์ดํฐ๊ฐ ์๋ค๋ฉด ๊ฒ์ ๊ฒฐ๊ณผ๊ฐ ์๋ค๊ณ ์๋ ค์ค๋ค.
- ์ด๋ฒคํธ ๋ฆฌ์ค๋ ๋ฌ์์ฃผ๊ธฐ
//๊ฒ์๋ฒํผ ํด๋ฆญํ๋ฉด ์ด๋ฒคํธ ์คํ
document.querySelector("#searchBtn").addEventListener("click", function (e) {
return search();
});
//์ํฐ ํค ์
๋ ฅํ๋ฉด ์ด๋ฒคํธ ์คํ
document.querySelector("#searchInput").addEventListener("keyup", function (e) {
if (e.keyCode == 13 || e.which == 13) {
return search();
}
});
โ๏ธโ๏ธ์ด ๋ถ๋ถ์์ ์ด์๊ฐ ์์๋ค. โ๏ธโ๏ธ
input์ ์ ๋ ฅ ํ๊ณ , ์ํฐํค๋ฅผ ์น๋ฉด, ์ ๋ ฅ๊ฐ๊ณผ ๋์ผํ ๊ฒฐ๊ณผ๊ฐ ์ ์ถ๋ ฅ ๋์๋๋ฐ,
์ดํ ์ง์ฐ๋ ค๊ณ ๋ฐฑ์คํ์ด์ค ํค๋ฅผ ์ ๋ ฅํ๋ ์ ๋ ฅ๋์ง ์์๋ค.
search() ํจ์์ ๋ฌธ์ ์ผ ๊ฒ์ด๋ผ๊ณ ์๊ฐํด์
ํด๋น ํจ์์์ ๋์ผํ ๋ฐ์ดํฐ๊ฐ ์๋ ๊ฒฝ์ฐ ์ถ๋ ฅํด์ค ๋ถ๋ถ๋ค์ ์ ์ธํด ๋ณด๋ ์ ์๋์ด ๋์๋ค..
๊ทธ๋ ์ง๋ง ๋๋ ๊ฒ์ ๊ฒฐ๊ณผ๊ฐ ๋์ค์ง ์์์ ๊ฒฝ์ฐ ๊ฒฐ๊ณผ๊ฐ ์๋ค๊ณ ๋งํด์ฃผ๊ณ ์ถ์๊ณ , ์ด์ฌํ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ์ฐพ์๋ดค๋ค.
์๊ณ ๋ณด๋ ..!
โ๏ธโ๏ธ์ ๋๋ก ๋ชฐ๋๋ ๋ถ๋ถ์ผ๋ก ์ธํ ๋ช๊ฐ์ง ๋ฌธ์ ๊ฐ ์์๋ค. โ๏ธโ๏ธ
- keydown ์ด๋ฒคํธ๋ ํค๋ฅผ ๋๋ฅธ ์๊ฐ ๋ฐ์ํ๋ฉฐ, input ๊ฐ์ด ๋ค์ด์ค๊ธฐ ์ ์ ์ด๋ฒคํธ๋ฅผ ๊ฐ์งํด ์ด๋ฒคํธ๊ฐ ์ผ์ด๋๋ค.
- e.preventDefault() ๋ ์ด๋ฒคํธ ๋ฒ๋ธ๋ง์ ๋จ์ํ ๋ง๋ ์ ๊ฐ ์๋๋ผ! ๋ธ๋ผ์ฐ์ ์ ๊ณ ์ ๋์์ ์ค์ง์ํจ๋ค.
- e.stopPropagation() ์ ๋ถ๋ชจ์์๋ก ์ด๋ฒคํธ ๋ฒ๋ธ๋ง ๋๋ ํ์์ ๋ง์์ค๋ค.
- ์ด๋ฒคํธ ๋ฒ๋ธ๋ง์ด ์งํ๋๋ ๋ฐฉํฅ์ ๋ถ๋ชจ์์๋ก ๋ฒ์ ธ๋๊ฐ๋ค.
์ฒ์์ ์๋ํ๋ ์ฝ๋๋ ์ด๋ฐ์์ด์๋ค
//๊ฒ์๋ฒํผ ํด๋ฆญํ๋ฉด ์ด๋ฒคํธ ์คํ
document.querySelector("#searchBtn").addEventListener("click", function (e) {
e.preventDefault();
return search();
});
//์ํฐ ํค ์
๋ ฅํ๋ฉด ์ด๋ฒคํธ ์คํ
document.querySelector("#searchInput").addEventListener("keydown", function (e) {
e.preventDefault();
if (e.keyCode == 13 || e.which == 13) {
return search();
}
});
๋ฌธ์ ๋ !!
keydown์ผ๋ก ์๋ํ์๊ณ ,
e.preventDefault() ๋ฅผ ์ด๋ฒคํธ ๋ฒ๋ธ๋ง ๋ง๋ ์์ ํ ์ !! ์ ๋๋ก๋ง ์๊ฐํ๊ณ ์ฌ์ฉํ์๋ค.
keyup ์ผ๋ก ๋ฐ๊พธ๋๊น ๋ง๋ฒ์ฒ๋ผ input ๊ฐ์ด ์์ฑํ๊ณ ๋ฐฑ์คํ์ด์ค ์ด์ฉํด์ ์ญ์ ๋ ๊ฐ๋ฅํ๋ฉฐ, ๊ฒ์๊ฒฐ๊ณผ๋ ์ ๋์๋ค.
์ ๊ทธ๋ฐ์ง๋ฅผ ๋ชฐ๋์๋๋ฐ, ์ด๋ ๊ฒ ์๊ณ ๋๋ ์ ๋ง ๊ธฐ์๋ค!!
์ฐธ๊ณ ํ ๋ธ๋ก๊ทธ
https://velog.io/@nemolog/231020TIL
'TIL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
23/10/21 TIL __ import , export ์ฌ์ฉํด๋ณด๊ธฐ (1) (0) | 2023.10.21 |
---|---|
23/10/20 TIL __ .focus() (0) | 2023.10.20 |
23/10/18 TIL __ ํ๋ก๊ทธ๋๋จธ์ค lv1. ์ถ์ต์ ์ (1) | 2023.10.18 |
23/10/17 TIL __ ๋งํฌ๋ ๋ฆฌ์คํธ (0) | 2023.10.17 |
23/10/16 TIL __ ๋น๋๊ธฐ์ ์ฒ๋ฆฌ (promise, generator, async/await) (2) | 2023.10.16 |