ํด๋ฆญ ์ด๋ฒคํธ ์ ์ฒด block
ํน์๋ ๋ ์ฌ์ฉํ๊ฑฐ๋ ๋ค๋ฅธ์ฌ๋์ด ์ฐพ์๋ณผ๊น๋ด ์ ๋ฆฌํด๋ด ๋๋ค. ์ด๊ฑธ ๋ง์ด ์ฐ์ง๋ ์๊ฒ ์ง๋ง ํน์๋! ์ฐ์ค๋ถ์ ์ฐ์๊ธฐ ๋ฐ๋๋๋ค.
๋ชจ๋ ํด๋ฆญ ์ด๋ฒคํธ๋ฅผ ๋ง์์ค ์ด๋ฒคํธ ์ค์ (mouse click event blocking)
var stopFunc = function(e) { e.preventDefault(); e.stopPropagation(); return false; };
var all = document.querySelectorAll('*');
for (var idx in all) {
var el = all[idx];
if (el.addEventListener) {
el.addEventListener('click', stopFunc, true); // have to true
}
}
๋ชจ๋ ์๋ฆฌ๋จผํธ์ click์ด๋ฒคํธ๋ฅผ ์ถ๊ฐํด์ค๋๋ค. ์ฌ๊ธฐ์ addEventListener ํจ์์ ๋งจ ๋ค์ true๋ฅผ ์ ๋ฌํ๋๋ฐ ๋ฌด์กฐ๊ฑด true๋ฅผ ์ ๋ฌํด์ผํฉ๋๋ค. ์ true๊ฐ์ผ๋ก ์ธํด click ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ์ ๋ ํ์ฌ ์ถ๊ฐํ๋ ํจ์๊ฐ ์ ์ผ ๋จผ์ ์ด๋ฒคํธ๋ฅผ ๋ฐ์์ฌ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ์ ์ผ ์์์ ๋ฐ์ ์ด๋ฒคํธ๋ฅผ ๋ง์๋ฒ๋ฆฌ๋ฉด ๋ชจ๋ ํด๋ฆญ ์ด๋ฒคํธ๊ฐ ๋งํ๋์ ์ด์ฃ .
โป ํ์ง๋ง hoverํ๊ฑฐ๋ ๋ค๋ฅธ ์ด๋ฒคํธ๋ฅผ ํตํด์ ์ด๋ค DOM(Document Object Model)์ด ์๋ก ์์ฑ๋ ๊ฒฝ์ฐ์๋ ๋ค์ ์ด๋ฒคํธ๋ฅผ ๋ฐ์ธ๋ฉํ๊ฑฐ๋ ํ์ง ์์ผ๋ฉด ํด๋ฆญ ์ด๋ฒคํธ๊ฐ ๋งํ์ง ์์ ๊ฒ์ ๋๋ค.
๋ชจ๋ ํด๋ฆญ ์ด๋ฒคํธ๋ฅผ ๋ง๋ ์ด๋ฒคํธ ํด์ (์ ๊ฑฐ)
var all = document.querySelectorAll('*');
for (var idx in all) {
var el = all[idx];
if (el.removeEventListener) {
el.removeEventListener('click', stopFunc, true); // stopFunc์ด ๋์ผํ๊ฒ ๊ตฌํ๋์ด์๋ค๋ ๊ฐ์ ํ์
}
}
๋งํ click ์ด๋ฒคํธ๋ฅผ ๋ค์ ํ์ฑํํ๋ ค๋ฉด ๋ง๋ ์ด๋ฒคํธ๋ฅผ ์ ๊ฑฐํด์ฃผ๋ฉด ๋ฉ๋๋ค. ๊ธฐ์กด์ ๋ฐ์ธ๋ฉ๋์ด์๋ ์ด๋ฒคํธ๋ค์ ๊ทธ๋๋ก ์ ์งํ๋ฉด์ ๋ง์ด์ฃ .