μ§κΈ λΉμ₯ μ΄λ²€νΈ νΈλ€λ¬λ₯Ό 쑰건λΆλ‘ μ€ννλ €λ©΄ μ΄λ²€νΈ νΈλ€λ¬μ 쑰건μ μ§μ ν΄μΌ ν©λλ€. μ΄λ μ΄λ²€νΈκ° μ¬μ ν ꡬλ λκ³ μ΄λ²€νΈ ꡬλ (κΈ°λ³Έ addEventListener λ° ν΄λΉ νΈλ€λ¬)μ λν λ©λͺ¨λ¦¬ ν λΉ μκΈμ μ§λΆνλ€λ κ²μ μλ―Έν©λλ€.
μΌλΆ μλ리μ€μμλ μ΄κ²μ΄ κ³ ν΅μ λλ€. μλ₯Ό λ€μ΄: μ€μ λ‘ ν¬μΈν°/λ§μ°μ€κ° μλ μ₯μΉμμλ§ μλ―Έκ° μκ³ λͺ¨λ°μΌ λ° ν°μΉ μ₯μΉμμλ μλ―Έκ° μλ λ§μ°μ€ μ΄λ²€νΈ(mouseover, mouseout)κ° μλ€κ³ κ°μ ν΄ λ³΄κ² μ΅λλ€.
μ§κΈ λΉμ₯μ μ΄λ²€νΈ ꡬλ μ μμ±νκ³ νΈλ€λ¬μ 쑰건μ μΆκ°ν΄μΌ ν©λλ€(λλ μ΄ κ²½μ° μ΄λ²€νΈκ° λ°μνμ§ μμΌλ―λ‘ κ·Έλ΄ νμλ μμ΅λλ€). νμ§λ§ μ¬μ ν μ΄λ¬ν νΈλ€λ¬λ₯Ό μ°κ²°νκ³ λ©λͺ¨λ¦¬λ₯Ό ν λΉνμ΅λλ€. νΉν λͺ¨λ°μΌ λΈλΌμ°μ μ κ°μ΄ λ©λͺ¨λ¦¬κ° μ νλ νλ«νΌμμλ λλΉμ λλ€.
μ΄λ²€νΈ ꡬλ μ체λ₯Ό 쑰건λΆλ‘ λ§λ€λ©΄ μ΄λ₯Ό νΌν μ μμ΅λλ€.
κ°μ₯ κ°λ¨ν ννλ‘ μ°λ¦¬λ μ 곡λ νΈλ€λ¬λ₯Ό κ²μ¬ν μ μκ³ κ±°μ§μΈ κ²½μ°(λλ κ·Έλ₯ nullμΈ κ²½μ°) μ΄λ²€νΈ ꡬλ μ λ¨λ½μν€κ³ κΈ°λ³Έ addEventListener μμ μ μ μ©νμ§ μμ μ μμ΅λλ€.
μ΄λ κ² νλ©΄ μ΄λ²€νΈ λ°μΈλ© μ μΈ μ체μ μ‘°κ±΄μ΄ λνλ μ μμ΅λλ€.
<div @mouseover="condition ? handler : null" />
@asiFarran
μ§κΈ λΉμ₯μ μ΄λ²€νΈ ꡬλ μ μμ±νκ³ νΈλ€λ¬μ 쑰건μ μΆκ°ν΄μΌ ν©λλ€(λλ μ΄ κ²½μ° μ΄λ²€νΈκ° λ°μνμ§ μμΌλ―λ‘ κ·Έλ΄ νμλ μμ΅λλ€).
μ¬μ€ μ΄ κ²½μ°λ₯Ό μ²λ¦¬ν μ μλ λ λ€λ₯Έ κ°λ¨ν λ°©λ²μ΄ μμ΅λλ€. 리μ€λ κ°μ²΄(λλ μ‘°κ±΄μ΄ μΆ©μ‘±λμ§ μλ κ²½μ° null)μ ν¨κ» κ³μ°λ μμ±μ v-on
μ λ¬ν μ μμ΅λλ€. μ: https://jsfiddle.net/c0Le92xe/
μ΄μ©λ©΄ λΉμ μ΄ νμν©λκΉ?
<div @mouseover="e => condition && handler(e)" />
@Kingwl μ μ¬μ ν ββ리μ€λλ₯Ό μΆκ°νλλ°, μ΄λ OPκ° νΌνκ³ μ νλ κ²μ λλ€.
@sqal μ μ μμ μ€μ λ‘ μ ν¨ν ν΄κ²° λ°©λ²μ΄λ©° λ€μκ³Ό κ°μ΄ λ¨μνν μ μμ΅λλ€.
<div v-on="{ mouseover: condition ? handler : null }">
μ, @sqal μ μ루μ μ μ’μ μ루μ μ΄λ©° @yyx990803 κ³Ό κ°μ μΈλΌμΈμ μ¬μ©νλ©΄ λ΄κ° μΌλμ λ κ²κ³Ό μΆ©λΆν λΉμ·ν©λλ€. κ°μ¬ ν΄μ!
μ΄λ‘ μΈν΄ λ κΉμ λ¬Έμ κ° λ°μν©λλ€. 리λ°μΈλκ° λ°μνκ³ (λ°μ΄ν° λ³κ²½) νκ° μ μ‘°κ±΄μ΄ λ³κ²½λλ©΄(λλ λ³΄λ€ μΌλ°μ μΌλ‘ v-onμ μ λ¬λ μ΄λ²€νΈ μ¬μ κ°μ²΄κ° λ€λ₯Έ κ²½μ°) κΈ°μ‘΄ μ΄λ²€νΈ ꡬλ μ΄ μ 리 λμ§ μμ΅λλ€ . κ·Έκ²λ€μ μ¬μ ν ββ(λ°λΌκ±΄λ) κ΅¬μ± μμμ μλͺ μ£ΌκΈ°κ° λλ λ μ²λ¦¬λμ§λ§ v-onμ΄ λ€μ λ°μΈλ©λ λμΈ 'ν΄μΌ ν ' λλ μ²λ¦¬λμ§ μμ΅λλ€.
μ΄κ²μ λλΆλΆμ μλ리μ€μ ν° μν₯μ λ―ΈμΉμ§ μμ§λ§ μ°Έμ‘°μ©μΌλ‘λ§ μ¬μ©λλ κ·Ήλ¨μ μΈ κ²½μ°μΌ μ μμ΅λλ€.
λ΄ μλ리μ€μμλ 볡μ‘ν SVGκ° μμΌλ©° μΌλΆ λ
Όλ¦¬λ₯Ό κΈ°λ°μΌλ‘ νΉμ μμμ λ§μ°μ€ μ€λ²/μμ μ²λ¦¬κΈ°λ₯Ό μ νμ μΌλ‘ μ°κ²°ν΄μΌ ν©λλ€.
κ΅¬μ± μμλ μ€λ μ§μλλ κ²μΌλ‘ κΈ°λ³Έ λ°μ΄ν°κ° λ³κ²½λμ΄ κ° λ¦¬λ°μΈλ μ λ€λ₯Έ μμμ μ΄λ²€νΈ νΈλ€λ¬λ₯Ό μ°κ²°ν΄μΌ νλ κ²½μ° λ¦¬λ°μΈλ©μΌλ‘ μ΄μ΄μ§λλ€. λ©λͺ¨λ¦¬.
μΌλ°μ μΈ μ루μ μ - κ·Έλ¦¬κ³ λ΄κ° κ²°κ΅ ν μΌμ - νλμ 'μ΅μμ' μ΄λ²€νΈ 리μ€λ(μ΄λ²€νΈ μ νλΉ)λ₯Ό μ€μ νκ³ μ΄λ²€νΈκ° λ²λΈλ§λλλ‘ νλ Vue λ°©μμΌλ‘ λ¨Όμ μλνλ €λ λκΈ°λ₯Ό μ€λͺ νλ κ²μ λλ€. , μ²λ¦¬κΈ°κ° ν μΌμ΄ μ κ³ (λ λΉ λ₯΄κ³ μ λμ μΈ μλ΅) μ²λ¦¬κΈ°κ° νΈμΆλμ§ μλλ‘ λ―Έλ¦¬ κ³μ°νκ³ μ΄λ²€νΈ ꡬλ μ체μ λ°λ‘ κ΅½κΈ° μν΄ μλνλ μ²λ¦¬κΈ°μμ λ°μν΄μΌ νλ μ²λ¦¬κ° κ½€ μμ΅λλ€. νμνμ§ μμ μμμ λν λͺ¨λ κ²μ λλ€(νΈλ€λ¬μμ DOM 쿼리μ μμ‘΄νμ¬ μ΄κ²μ νν°λ§νλ κ²κ³Όλ λμ‘°μ μΌλ‘).
@VsevolodTrofimov μμ μ μ΄λ²€νΈ ꡬλ μ΄ μ ν λ°μνμ§ μλλ‘ νλ κ²μ΄μμ΅λλ€. νΈλ€λ¬μμ 쑰건μ μ μ©νλ©΄ μ΄ μꡬ μ¬νμ΄ μΆ©μ‘±λμ§ μμ΅λλ€. μμ μ견μ λ§μ‘±μ€λ¬μ΄ ν΄κ²° λ°©λ²μ μ 곡νλ―λ‘ μ°Έκ³ νμμμ€.
κ·Έκ²μ λ°μνκΈ° μν΄ μ΄ λ¬Έμ λ₯Ό λ«μ΅λλ€.
<div v-on="{ mouseover: condition ? handler : null }">
$event
λ° κΈ°ν μΈμλ₯Ό νΈλ€λ¬μ μ λ¬ν μ μμ΅λκΉ?
@pmayer
<div v-on="{ mouseover: condition ? $event => handler($event, arg) : null }">
λλ νΈλ€λ¬λ₯Ό μΉ΄λ μ μ¬μ©
<div v-on="{ mouseover: condition ? handler(arg) : null }">
μ μλ μ루μ μΌλ‘
<div v-on="{ mouseover: condition ? handler : null }">
".stop.prevent"μ κ°μ μμμ΄λ₯Ό μ μ©νλ λ°©λ²μ΄ μμ΅λκΉ?
μλ νμΈμ @yyx990803 @VsevolodTrofimov
μ¬κΈ°μ μ μλ μ루μ
( v-on="{ mouseover: condition ? handler : null }"
)μ μ΅μ Vueμμ μ€μ λ‘ μλνμ§ μμ΅λλ€.
μ΄ μ€λ₯κ° λ°μν©λλ€.
Invalid handler for event "mouseover": got null
Vueκ° μ€μ λ‘ μ΄λ²€νΈ π€ λ°μΈλ©μ ν΄μ νλ λμ νΈλ€λ¬λ₯Ό μ€ννλ €κ³ νλ κ² κ°μ΅λλ€.
@DawidMyslak
μλλ‘ λ³κ²½νλ©΄ μλν©λλ€.
v-on="condition ? { mouseover: handler } : {}"
λλ νΈλ€λ¬κ° mouseover
v-on="condition ? { mouseover } : {}"
λ©μ§λ€ @pbastowski !
κ°μ¬ν©λλ€!
μ¬μ©μ μ§μ λ°μ΄ν°λ‘ μ²λ¦¬κΈ°λ₯Ό νΈμΆνλ κ²½μ° μΈλΌμΈ ν¨μλ‘ λνν μ μμ΅λλ€. μ΄ κ°μ
v-on="condition ? { mouseover: () => handler(somedata) } : {}"
μ΄κ²μ Vue λ¬Έμμ μμ΄μΌ ν©λλ€.
@DawidMyslak
μλλ‘ λ³κ²½νλ©΄ μλν©λλ€.v-on="condition ? { mouseover: handler } : {}"
λλ νΈλ€λ¬κ°
mouseover
v-on="condition ? { mouseover } : {}"
μ΄κ²μ .once
μ κ²°ν©νλ λ°©λ²μ΄ μμ΅λκΉ?
https://vuejs.org/v2/guide/render-function.html#Event -amp-Key-Modifiersλ₯Ό μ¬μ©ν μ μμ΅λλ€.
<button v-on="{ '~click': () => foo = new Date() }">Trigger only once</button>
μ΄μ λν ν κ°μ§ μ§λ¬Έμ λ€μμ μνν λ λ©λͺ¨λ¦¬ λμ λλ μ΄λ²€νΈ 리μ€λκ° μ κ±°λμ§ μκ³ μ‘°κ±΄μ΄ μ κΈ°μ μΌλ‘ λ³κ²½λ©λκΉ?
<template>
<div v-on="myListeners">
some content
</div>
</template>
<script>
...
computed: {
myListeners() {
return this.canExecute ? { click: () => this.$emit(...) } : {};
},
},
...
</script>
κ°λ¨ν λ§ν΄μ v-on
κ° λ³κ²½ μ¬νμ μ²λ¦¬ν©λκΉ?
@dietergeerts κ·Έλ μ΅λλ€ .
λ€μ΄ν°λΈ μ΄λ²€νΈμμ μλν©λκΉ? keydown.native
μλνμ§ λͺ»νμ΅λλ€.
μ°Έκ³ λ‘ 2.6(μμ§ μΆμλμ§ μμ)λΆν° λ€μκ³Ό κ°μ΄ μ‘°κ±΄λΆ μ΄λ²€νΈ λ°μΈλ©μ μ μ©ν μ μμ΅λλ€.
<div @[event]="handler" />
event
κ° null
ν΄μλλ λμ λ°μΈλ©μ μ κ±°λ©λλ€.
@Justineo νλ₯νμ§λ§ λ°©κΈ λ² νλ₯Ό μλνλλ° μμ μ(λͺ¨λ μ ν)μμλ μλνμ§ μλ κ² κ°μ΅λλ€. μμ§ κ΅¬νλμ§ μμμ΅λκΉ? μμ μΈκ°μ?
@AlansCodeLog λͺ¨λ μμ μμ ν¨κ» μλν΄μΌ ν©λλ€. μλνμ§ μμΌλ©΄ μ¬μμ°μΌλ‘ μ λ¬Έμ λ₯Ό μ΄μ΄μΌ ν©λλ€.
@yyx990803 μ’μμ, μ¬μμ° κ°λ₯νμ§ λ³΄κ² μ΅λλ€.
μ¬κΈ°μμ λ¬Έμ λ₯Ό μ΄μμ΅λλ€. #9417
μ΄μ©λ©΄ λΉμ μ΄ νμν©λκΉ?
<div @mouseover="e => condition && handler(e)" />
λΈλΌμ°μ μλ°μ€ν¬λ¦½νΈ λ²μ
<div @mouseover="condition && handler(arguments[0])" />
@kieryk123 λ³Ό μ μλ CodeSandbox λ§ν¬λ₯Ό μ 곡ν μ μμ΅λκΉ?
μ κ²½μ°μλ λΉνμ±νλ λ²νΌ μμ(Vuetifyλ₯Ό ν΅ν΄)μμ μ΄ μμ μ μννλ €κ³ νμ§λ§ λΆλͺ ν Chromeμ νμν μ΄λ²€νΈλ₯Ό μ€ννμ§ μμΌλ©° μμλ μ΄λ²€νΈλ₯Ό ν¬μ°©νκΈ° μν΄ div λλ μ΄μ μ μ¬ν κ²μΌλ‘ λνλμ΄μΌ ν©λλ€.
μλ
νμΈμ.
μ΄λ κ² νλ €κ³ νλλ° μ μλλ€μ.
// not working
v-on="{ [condition ? 'click.stop' : 'click'] : eventfunc }"
// or
// error
v-on="{ condition ? 'click.stop' : 'click' : eventfunc }"
λ€λ₯Έ ν΄κ²°μ±
μ΄ μμ΅λκΉ?
미리 κ°μ¬λ립λλ€!
λ€μμ κΈ°λ³Έ μ΄λ²€νΈμ λν νΈλ¦μ λλ€(Vue v2.6.11 μ¬μ©).
@mouseenter.native="condition && handler($event)"
<div @[event]="handler" />
@Justineo μ΄ κ΅¬λ¬Έμ΄ Vueμ μΆκ°λμμ΅λκΉ?
μλν μ μμ΅λλ€. μμΈν λ΄μ©μ μ½μ μ μλ λ¬Έμ λ§ν¬λ₯Ό λ³΄λ΄ μ£Όμκ² μ΅λκΉ?
@proArtex κ°μ¬ν©λλ€. μ μκ²λ ν¨κ³Όμ μ
λλ€!
@keyup.delete="title.length === 0 && cancelTopicCreation()"
μ§λ¬Έμ.... μμ?
@AndrewBogdanovTSS λ μ΄ λ°μ΄μ¬λ¦° https://jsfiddle.net/pbastowski/v0wt5qpo/27/λ₯Ό μ΄ν΄λ³΄μμμ€.
ꡬ문μ μΌλ° λ° κΈ°λ³Έ ν΄λ¦μ λν΄ μ μλν©λλ€. .native
μ΄λ²€νΈλ Vue κ΅¬μ± μμμμλ§ μ¬μ©ν μ μμΌλ©° μΌλ° HTML μμμμλ μ¬μ©ν μ μμ΅λλ€.
@pbastowski κ°λ¨ν λ¬Έμμ΄μ΄ μλνκ³ μμ§λ§ νμν κ²μ μΌλΆ λ°μ λ°μ΄ν°λ₯Ό κΈ°λ°μΌλ‘ μ΄λ²€νΈ κ°μ ν΄κ²°ν μ μλ κ²μ΄λ―λ‘ λ€μκ³Ό κ°μ κ²μ΄ νμν©λλ€.
<h2 @[() => someProp ? 'mouseup' : null]="alert('Normal click on an HTML element')">H2 Element - click it</h2>
κ·Έλ° κ΅¬λ¬Έμ μ μκ² μ ν©νμ§ μμ΅λλ€.
@AndrewBogdanovTSS λ Όλ¦¬λ₯Ό κ³μ°λ κ²μΌλ‘ μ΄λνκΈ°λ§ νλ©΄ μ¬κΈ°μμ μ λ°μ΄νΈλ μλ₯Ό μ°Έμ‘° νμμμ€.
κ°μ₯ μ μ©ν λκΈ
@Kingwl μ μ¬μ ν ββ리μ€λλ₯Ό μΆκ°νλλ°, μ΄λ OPκ° νΌνκ³ μ νλ κ²μ λλ€.
@sqal μ μ μμ μ€μ λ‘ μ ν¨ν ν΄κ²° λ°©λ²μ΄λ©° λ€μκ³Ό κ°μ΄ λ¨μνν μ μμ΅λλ€.