vue 더블 클릭 이벤트 2.0 이벤트 감청(클릭-더블 클릭-마우스 이벤트) 및 이벤트 수식자 조작
DOM 이벤트를 v-on 명령으로 감청하고 트리거할 때 JavaScript 코드를 실행할 수 있습니다.
v-on:클릭 이벤트
v-on:dblclick 더블 클릭 이벤트
v-on:mousemove\mouseout 마우스 이벤트
<div class="canvas" @mouseout ="update">
{{ x }} - {{ y }}
</div>
new Vue({
el:".vue-app",
data:{
age: 25,
x:0,
y:0
},
methods:{
add:function(inc){
this.age += inc;
},
subtract:function(dec){
this.age -= dec ;
},
update:function(event){
// console.log(event);
this.x = event.offsetX;
this.y = event.offsetY;
}
}
});
그러나 많은 이벤트 처리 논리가 더욱 복잡해지기 때문에 자바스크립트 코드를 v-on 명령에 직접 쓰는 것은 불가능하다.따라서 v-on은 호출해야 할 방법의 이름을 받을 수 있습니다.Vue.js 이벤트 수식자
이벤트 처리 프로그램에서 우리가 방법에서 쉽게 이 점을 실현할 수 있지만, 더 좋은 방법은 DOM 이벤트의 세부 사항을 처리하는 것이 아니라 순수한 데이터 논리뿐이다.
이 문제를 해결하기 위해, Vue.js는 v-on에 이벤트 수식자를 제공합니다.이전에 언급한 바와 같이 수식자는 점에서 시작하는 지령 접두사로 표시된다.
.stop
.prevent
.capture
.self
.once
.passive
<!-- -->
<p v-on:mousemove.stop> Stop </p>
<!-- -->
<button class=" btn btn-info" v-on:click.once="add(1)"> + + </button>
<!-- A , -->
<p><a v-on:click.prevent ="alert() " href="http://blog.023xs.cn" rel="external nofollow" >blog.023xs.cn</a></p>
주의사항: 수식자를 사용할 때 순서가 중요하다.상응하는 코드는 같은 순서로 생길 것이다.따라서 v-on:click을 사용합니다.prevent.self는 모든 클릭을 막고, v-on:click.self.prevent는 원소 자체에 대한 클릭만 막습니다.Vue 버튼 수정자
키보드 이벤트를 감청할 때, 우리는 흔히 볼 수 있는 키 값을 검사해야 한다.Vue를 사용하면 키보드 이벤트를 수신할 때 v-on의 키 수정자를 추가할 수 있습니다.
<!-- , Enter -->
<input v-on:keyup.enter="Email" type="text" class="form-control" placeholder="Email">
<!-- , ” “ ” -->
<input v-on:keyup.delete="Email" type="text" class="form-control" placeholder="Email">
모든 키 별칭:.enter
.tab
.delete ( “ ” “ ” )
.esc
.space
.up
.down
.left
.right
모든 keyCode를 기억하는 것이 어렵기 때문에 Vue는 가장 자주 사용하는 버튼에 별명을 제공합니다. 물론 전역config를 통해서도 가능합니다.keyCodes 객체 사용자 정의 키 수정자 별칭입니다.보충 지식: vue는 같은 요소에 click을 연결하고 이벤트 dblclick을 두 번 누르면 서로 다른 논리를 실행합니다
프로젝트를 진행하는 과정에서 필요는 구멍 위치를 클릭하여 팝업 대화상자를 클릭하여 제품 총수를 보고 팝업 대화상자를 두 번 클릭하여 자세한 내용을 보는 것이다.처음에는 직접 클릭과 dblclick을 탭에 썼지만, 어쨌든 클릭 이벤트를 실행합니다
해결 방법: 타이머를 이용하여 대략적인 시간에 더블 클릭 이벤트를 시뮬레이션합니다
html 부분 코드:
<div class="grid-content">
<el-button
v-for="(item,index) in items" :key="index"
@click="storageCount(item.id)"
@dblclick.native="storageDetail(item.id)"
class="inline-cell"
:class="colors[item.status]">
{{item.id}}</el-button>
</div>
.native는 구성 요소 루트 요소의 원본 이벤트를 감청하는 데 사용되며, 사용자 정의 구성 요소에 원본 이벤트를 추가합니다.정부측 맞아요.native 수식자의 해석은 어떤 구성 요소의 루트 요소에서 원본 사건을 감청하고 싶을 수도 있다는 것이다.v-on의 수식자를 사용할 수 있습니다.native
js 부분 코드
<script>
import desDialog from './dialog';
import detailDialog from './detailDialog';
var time = null; // time null
export default {
name: 'storeTable',
components: {
desDialog,
detailDialog
},
props: ['providerid'],
data() {
return {
colors: ['space', 'isBuy'],
showDialog: false,
showDialogT: false
};
},
methods: {
//
storageCount(id) {
clearTimeout(time); //
time = setTimeout(() => {
this.showDialog = !this.showDialog;
const obj = {};
obj.cutname = id;
obj.providerid = this.providerid;
this.$store.dispatch('GetStorageCount', obj);
}, 300); // 300ms
},
// , ,
storageDetail(id) {
clearTimeout(time); //
this.showDialogT = !this.showDialogT;
const obj = {};
obj.cutname = id;
obj.providerid = this.providerid;
this.$store.dispatch('GetStorageDetail', obj);
},
close() {
this.showDialog = false;
},
closeT() {
this.showDialogT = false;
}
}
};
</script>
상기 vue 더블 클릭 이벤트 2.0 이벤트 감청(클릭-더블 클릭-마우스 이벤트)과 이벤트 수식자 조작은 편집자가 여러분에게 공유한 모든 내용입니다. 참고 부탁드리고 저희도 많이 사랑해 주세요.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Fastapi websocket 및 vue 3(Composition API)1부: FastAPI virtualenv 만들기(선택 사항) FastAPI 및 필요한 모든 것을 다음과 같이 설치하십시오. 생성main.py 파일 및 실행 - 브라우저에서 이 링크 열기http://127.0.0.1:...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.