๋ค์ ์์๋ฅผ ๊ณ ๋ คํ์ญ์์ค.
<div @click.self.once="eat">Eat <span>me</span></div>
"๋จน๊ธฐ"๋จ์ด๋ฅผ ํด๋ฆญํ๋ฉด ๋ชจ๋ ๊ฒ์ด ์์๋๋ก ์๋ํฉ๋๋ค. ์ด๋ฒคํธ๊ฐ ํ ๋ฒ ์์๋๊ณ ์ฐ๋ฆฌ๋ ํ๋ณตํฉ๋๋ค.
๊ทธ๋ฌ๋ ์์ ๋
ธ๋ ์ธ "me"๋ฅผ ํด๋ฆญ ํ ๋ค์ "Eat"๋ฅผ ํด๋ฆญํ๋ฉด ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ์ง ์์ต๋๋ค! .once
์ (๋) ์ด๋ฒคํธ๋ฅผ ์์๋ ๊ฒ์ผ๋ก ํ๋จํ๋ ๋ฐ ๋๋ฌด ์ฌ์ด ๊ฒ ๊ฐ์ต๋๋ค.
.once
๋ ์ค์ ๋ก ํด๊ณ ๋ ๊ฒฝ์ฐ์๋ง ์๋ฃ๋ก ํ์ํด์ผํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋ฌธ์ ๋ฅผ ์ ์ถํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ๋ฌธ์ ๋ณด๊ณ ์ง์นจ์ ๋ฐ๋ฅด๊ณ ์ค๋ช ๋ ๋์์ผ๋ก ์ด์ด์ง ์์๋ ์ฌํ ๊ฐ๋ฅํ ๋จ๊ณ ์ธํธ๊ฐ ํฌํจ ๋ ์ต์ํ์ JSFiddle ๋๋ JSBin์ ์ ๊ณตํ์ญ์์ค.
์๋ ํ์ธ์,
๋๋ OP๋ ์๋์ง๋ง ๊ทธ๊ฐ ์ธ๊ธ ํ ๋ฌธ์ ๋ฅผ ์ฌํ ํ ์ ์์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ค๋ช ์ ์ํด ์๋์ JSFiddle์ ์ฒจ๋ถํ์ต๋๋ค.
'Eat'๋ผ๋ ๋จ์ด๋ฅผ ํด๋ฆญํ๋ฉด ์์๋๋ก ์๋ํฉ๋๋ค. ์ด๋ฒคํธ๊ฐ ์์๋๊ณ ๊ณผ์ผ ๋ฐ์ดํฐ๊ฐ ์ ๋ฐ์ดํธ๋ฉ๋๋ค.
JSFiddle์ ๋ค์๋ก๋ํ๊ณ span ์์ ์์ 'me'๋ฅผ ํด๋ฆญ ํ ๋ค์ 'Eat'๋ฅผ ํด๋ฆญํ๋ฉด ๊ณผ์ผ ๋ฐ์ดํฐ๊ฐ ์ ๋ฐ์ดํธ๋์ง ์์ต๋๋ค.
๋์์ด ๋์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
@boristhuy JSFiddle์ ์ ๊ณตํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ์ด๊ฒ์ด ๋ฐ๋ก ์ ๊ฐ ์๋ฏธํ๋ ๋ฐ์ ๋๋ค.
๋ฒ๊ทธ ์ผ ๊ฒ์ ๋๋ค. ํ์ฌ ์ด๋ฒคํธ ํธ๋ค์ ์ผ๋จ ๋ค์ด๊ฐ๋ฉด ์ ๊ฑฐ๋๋ฉฐ ์ค์ ๋ก ์์ ์ ๊ฒ์ฌ๋ก ์ธํด ์ค์ ๋ก ํธ์ถ๋์ง ์์ต๋๋ค.
์ด๋ฅผ ์ง์ํ๊ธฐ ์ํด once
์ฝ๋๋ฅผ ์
๋ฐ์ดํธํด์ผ ํ ์๋ ์์ต๋๋ค.
์ฒ๋ผ
(function(){
var called = false;
return function($events){
// modifiers check
// called check
if (called)return;
called = true;
// handler code
}
})()
๋ ๋ ๊ธฐ๋ฅ์ ์ฌ์ฉ๋๋ once
๊ฒฝ์ฐ์๋ ํฐ ๋ณํ๊ฐ์์ ๊ฒ์
๋๋ค. ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ๋ฐฉ๋ฒ์ ์ฐพ์ผ๋ ค๊ณ ํฉ๋๋ค.
once
genCode๋ฅผ ์
๋ฐ์ดํธํฉ๋๋ค.once
์ ์ฌ์ฉ๋๋ ๊ธฐ๋ฅ์ ๋ ๋๋ง on: {'~click': handle}
, ๊ธฐ์กด์ ์ ๋ต์ ์ ์งํ๋ค.'~click': handle
'click': handle2
@defcc ์คํ์ด ๊ธ์ง ๋ ํธ๋ค๋ฌ์์ ํน์ ๊ฐ์ ๋ฐํํ์ฌ ์์ ํ์ต๋๋ค. ์ด๊ฒ์ ์ธ๊ธ ํ (3) ๋ฒ๊ทธ๋ฅผ ํด๊ฒฐํ์ง ๋ชปํ ์๋ ์์ง๋ง ํ์ํ ๊ฒฝ์ฐ ๋ณ๋์ PR์์ ์ฒ๋ฆฌํ๊ฒ ์ต๋๋ค.