【Vue】vue事件修飾符

修飾符modifiers

【Vue】vue事件修飾符

修飾符modifiers


修飾符(Modifiers)

  • 在v-on和v-model上使用。


事件修飾符

修飾符 說明 如同
無使用 先觸發自己,再觸發外層
.capture 先觸發外層,再觸發自己
.stop 只觸發自己 event.stopPropagation()
.self 只觸發自己
.once 只觸發一次
.prevent 取消預設事件 event.preventDefault()

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// <-----html----->
ul#app
  //** 無使用 **//
  li(@click="alert('外層')")
    a(href="#" @click="alert('內層')") 連結

  //** .capture **//
  li(@click="alert('外層')")  //(先觸發)
    a(href="#" @click="alert('內層')") 連結  //點擊(再觸發)

  //** .stop **//
  li(@click="alert('外層')")
    a(href="#" @click.stop="alert('內層')") 連結  //點擊(只觸發自己)

  //** .self **//
  li(@click.self="alert('外層')")  //點擊(只觸發自己)
    a(href="#" @click.self="alert('內層')") 連結  //點擊(只觸發自己)

  //** .once **//
  li(@click="alert('外層')")
    a(href="#" @click.once="alert('內層')") 連結 //點擊(只觸發一次)

// <-----js----->
var app = new Vue({
  el: "#app",
  methods:{
    alert: function(e){
      alert("你觸發的是"+e);
    }
  }
});


按鍵修飾符

修飾符
keycode .13 .9 .8 .27 .32 .38 .40 .37 .39
按鍵碼 .enter .tab .delete .esc .space .up .down .left .right
系統鍵 .ctrl .alt .shift .meta

.meta : 在window系統是:Win鍵(⊞) ; 在Mac系統上是command鍵(⌘)。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
// <-----html----->
#app
  //按下enter觸發
  input(type="text" @keyup.13="alert")

  //按下空白鍵觸發
  input(type="text" @keyup.space="alert")

  //按下shift+enter觸發
  input(type="text" @keyup.shift.enter="alert")

// <-----js----->
var app = new Vue({
  el: "#app",
  methods:{
    alert: function(){
      alert();
    }
  }
});


滑鼠修飾符

修飾符 說明
.left 點擊滑鼠左鍵觸發
.right 點擊滑鼠右鍵觸發
.middle 點擊滑鼠中鍵(滾輪)觸發

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
// <-----html----->
#app
  //點擊滑鼠左鍵觸發
  a(href="#" @click.left="alert") 連結

  //點擊滑鼠右鍵觸發
  a(href="#" @click.right="alert") 連結

  //點擊滑鼠中鍵(滾輪)觸發
  a(href="#" @click.middle="alert") 連結

// <-----js----->
var app = new Vue({
  el: "#app",
  methods:{
    alert: function(){
      alert();
    }
  }
});


表單修飾符

修飾符 說明
.lazy 離開輸入框時,才會顯示綁定的文字
.number 能讓輸入框的數字轉換成Number型別
.trim 能讓輸入的文字與預設文字中間無空白

.meta : 在window是:Win鍵(⊞) ; 在Mac上是command鍵(⌘)。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// <-----html----->
#app
  //* .lazy *//
  input(type="text" v-model.lazy="a")
  p {{a}}

  //* .number *//
  input(type="text" v-model.Number="b")
  p {{typeof b}} {{b}}

  //* .trim *//
  input(type="text" v-model.trim="c")
  p {{c}}蘋果

// <-----js----->
var app = new Vue({
  el: "#app",
  data:{
    a: "",
    b: "",
    c: ""
  }
});
vue 

其他相關