日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

vue 實現click同時傳入事件對象和自定義參數

瀏覽:32日期:2022-10-07 16:25:21
僅僅傳入自定義參數

HTML

<div id='app'> <button @click='tm(123)'>ddddd</button></div>

JS代碼

new Vue({ el:’#app’, methods:{ tm:function(e){ console.log(e); } }})僅僅傳入事件對象

HTML

<div id='app'> <button @click='tm'>ddddd</button></div>

JS代碼

new Vue({ el:’#app’, methods:{ tm:function(e){ console.log(e); } }})同時傳入事件對象和自定義參數

HTML

<div id='app'> <button @click='tm($event,123)'>ddddd</button></div>

JS代碼

new Vue({ el:’#app’, methods:{ tm:function(e,value){ console.log(e); console.log(value); } }})

補充:vue常用事件之v-on:click 以及事件對象,事件冒泡,事件默認行為

其實v-on后面跟的不止是click事件也可以是其他的事件,用法均相似。比如:v-on:click/mouseout/mouseover/mousedown.......

以下click為例

注意:所有的v-on都可以簡寫為@,比如說v-click可以簡寫為@click

1.監聽事件

可以用 v-on 指令監聽 DOM 事件,并在觸發時運行一些 JavaScript 代碼。通常來講就是監聽dom觸發一些操作,這些操作(比如點擊)觸發后執行的動作(js)可有直接寫在后面

v-on:click='item+=1'

eg:

<template> <div > <input type='button' value='clickme' v-on:click='item+=1'/> <div>{{item}}</div> </div></template> <script>export default { name: ’HelloWorld’, data () { return { item:1 } }}</script> <!-- Add 'scoped' attribute to limit CSS to this component only --><style scoped> </style>

結果:

vue 實現click同時傳入事件對象和自定義參數

可以看見每點擊一次綁定的值就增加1.也就是說可以吧js的操作放在事件觸發的后面。但是有時候邏輯太復雜的時候寫在里面就會造成混亂,視圖和邏輯混淆。所以click后面可以接一個方法,把所有處理邏輯的方法封裝在一個函數里面click的時候調用

2.事件處理方法

v-on:click='greet'

eg:

<template> <div > <input type='button' value='clickme' v-on:click='greet'/> <div>{{res}}</div> </div></template> <script>export default { name: ’HelloWorld’, data () { return { name : 1, res:'' } }, methods:{ greet: function () { // `this` 在方法里指向當前 Vue 實例 this.res=’Hello ’ + this.name + ’!’; } }}</script> <!-- Add 'scoped' attribute to limit CSS to this component only --><style scoped> </style>

效果:

vue 實現click同時傳入事件對象和自定義參數

可以看見點擊之后執行了greet方法里面js邏輯

3.帶參數的時間綁定方法:

同上,唯一區別是攜帶了參數

v-on:click='greet(name)'

<template> <div > <input type='button' value='clickme' v-on:click='greet(name)'/> <div>{{res}}</div> </div></template> <script>export default { name: ’HelloWorld’, data () { return { name : 1, res:'' } }, methods:{ greet: function (reccept) { // `this` 在方法里指向當前 Vue 實例 this.res=’Hello ’ + reccept+1 + ’!’; } }}</script> <!-- Add 'scoped' attribute to limit CSS to this component only --><style scoped> </style>

效果一致。對方法的調用同樣可以一個方法多處多次的調用

4.內聯處理器中的方法

也就是說在方法里面調用其他的方法,這里的其他方法可以是js原生的方法比如阻止冒泡呀等等,也可以是自定義的方法

v-on:click='greet(name,$event)'

eg:

<template> <div > <input type='button' value='clickme' v-on:click='greet(name,$event)'/> <div>{{res}}</div> </div></template> <script>export default { name: ’HelloWorld’, data () { return { name : 1, res:'' } }, methods:{ greet: function (reccept,event) { if (reccept===1) this.say() }, say:function () { this.res='我調用了' } }}</script> <!-- Add 'scoped' attribute to limit CSS to this component only --><style scoped> </style>

效果:

vue 實現click同時傳入事件對象和自定義參數

5.事件對象

$event 拿到當前點擊事件的事件對象,比如click就是拿到當前點擊的dom事件對象信息

v-on:click='greet($event)'

eg:

<template> <div > <input type='button' value='clickme' v-on:click='greet($event)'/> </div></template> <script>export default { name: ’HelloWorld’, data () { return { hide : true } }, methods:{ greet: function (ev) { alert(ev.clientX) } }}</script> <!-- Add 'scoped' attribute to limit CSS to this component only --><style scoped> </style>

效果:

vue 實現click同時傳入事件對象和自定義參數

6.事件冒泡

當不阻止事件冒泡的時候會彈兩次

eg

<template> <div > <div @click='show1($event)'> <div @click='show2($event)'>點擊我呀</div> </div> </div></template> <script>export default { name: ’HelloWorld’, data () { return { hide : true } }, methods:{ show1: function (ev) { alert(1) }, show2: function (ev1) { alert(2) } }}</script> <!-- Add 'scoped' attribute to limit CSS to this component only --><style scoped> </style>

那么但阻止冒泡后就只會彈一次

eg:原生js阻止冒泡

ev1.cancelBubble=true

<template> <div > <div @click='show1($event)'> <div @click='show2($event)'>點擊我呀</div> </div> </div></template> <script>export default { name: ’HelloWorld’, data () { return { hide : true } }, methods:{ show1: function (ev) { alert(1) }, show2: function (ev1) { ev1.cancelBubble=true alert(2) } }}</script> <!-- Add 'scoped' attribute to limit CSS to this component only --><style scoped> </style>

那么vue自己封裝的阻止冒泡方法呢?

@click.stop='show2()'

eg:

<template> <div > <div @click='show1()'> <div @click.stop='show2()'>點擊我呀</div> </div> </div></template> <script>export default { name: ’HelloWorld’, data () { return { hide : true } }, methods:{ show1: function () { alert(1) }, show2: function (ev1) { alert(2) } }}</script> <!-- Add 'scoped' attribute to limit CSS to this component only --><style scoped> </style>7.阻止默認行為:

比如:如下右鍵之后會將默認的菜單帶出來

<template> <div > <div> <div @contextmenu='show2()'>右鍵點擊我呀</div> </div> </div></template> <script>export default { name: ’HelloWorld’, data () { return { hide : true } }, methods:{ show2: function (ev1) { alert(2) } }}</script> <!-- Add 'scoped' attribute to limit CSS to this component only --><style scoped> </style>

效果:

vue 實現click同時傳入事件對象和自定義參數

那么就有了阻止默認行為

ev1.preventDefault();

eg:

<template> <div > <div> <div @contextmenu='show2($event)'>右鍵點擊我呀</div> </div> </div></template> <script>export default { name: ’HelloWorld’, data () { return { hide : true } }, methods:{ show2: function (ev1) { alert(2); ev1.preventDefault(); } }}</script> <!-- Add 'scoped' attribute to limit CSS to this component only --><style scoped> </style>

點擊后默認菜單將不會顯示(PS早360瀏覽器右鍵無效)

vue里面的封裝的阻止默認行為的方法:

@contextmenu.prevent='show2()'

eg:

<template> <div > <div> <div @contextmenu.prevent='show2()'>右鍵點擊我呀</div> </div> </div></template> <script>export default { name: ’HelloWorld’, data () { return { hide : true } }, methods:{ show2: function (ev1) { alert(2); } }}</script> <!-- Add 'scoped' attribute to limit CSS to this component only --><style scoped> </style>8.其他事件修飾符

用法都一樣就不再贅述

.capture

.self

.once

<!-- 阻止單擊事件繼續傳播 --><a v-on:click.stop='doThis'></a><!-- 提交事件不再重載頁面 --><form v-on:submit.prevent='onSubmit'></form><!-- 修飾符可以串聯 --><a v-on:click.stop.prevent='doThat'></a><!-- 只有修飾符 --><form v-on:submit.prevent></form><!-- 添加事件監聽器時使用事件捕獲模式 --><!-- 即元素自身觸發的事件先在此處處理,然后才交由內部元素進行處理 --><div v-on:click.capture='doThis'>...</div><!-- 只當在 event.target 是當前元素自身時觸發處理函數 --><!-- 即事件不是從內部元素觸發的 --><div v-on:click.self='doThat'>...</div>

使用修飾符時,順序很重要;相應的代碼會以同樣的順序產生。因此,用 @click.prevent.self 會阻止 所有的點擊 ,而 @click.self.prevent 只會阻止對元素自身的點擊。

2.1.4 新增

<!-- 點擊事件將只會觸發一次 --><a v-on:click.once='doThis'></a>

不像其它只能對原生的 DOM 事件起作用的修飾符,.once 修飾符還能被用到自定義的組件事件上。如果你還沒有閱讀關于組件的文檔,現在大可不必擔心。

<!-- the scroll event will not cancel the default scroll behavior --><div v-on:scroll.passive='onScroll'>...</div>

Vue 為這些修飾符額外提供了 .passive 修飾符來提升移動端的性能。

舉個例子,在滾動的時候,瀏覽器會在整個事件處理完畢之后再觸發滾動,因為瀏覽器并不知道這個事件是否在其處理函數中被調用了 event.preventDefault()。.passive 修飾符用來進一步告訴瀏覽器這個事件的默認行為不會被取消。

不要把 .passive 和 .prevent 一起使用。被動處理函數無法阻止默認的事件行為。

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持好吧啦網。如有錯誤或未考慮完全的地方,望不吝賜教。

標簽: Vue
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产黄大片在线观看| 在线国产日韩| 99久久精品费精品国产| 美女毛片一区二区三区四区| 亚洲精品无播放器在线播放| 成人污污视频| 亚洲精品福利| 日韩一级精品| 欧洲一级精品| 国产精品大片免费观看| 亚洲香蕉久久| 日本高清不卡一区二区三区视频| 久久成人亚洲| 日本亚州欧洲精品不卡| 麻豆亚洲精品| 精品一区在线| 日本 国产 欧美色综合| 一区二区国产精品| 不卡一区2区| 亚洲欧美日韩国产综合精品二区| 黄色免费成人| 欧美a级片一区| 国产精品日本| 国产农村妇女精品一区二区| 日韩免费在线| 99视频精品视频高清免费| 亚洲作爱视频| 欧美一区=区三区| 亚洲欧洲av| 国产一区成人| 综合干狼人综合首页| 丝袜亚洲精品中文字幕一区| 免费成人性网站| 日韩亚洲精品在线观看| 麻豆视频在线看| 日韩专区在线视频| 99精品视频在线| 日本精品在线播放| 亚洲精品**中文毛片| 99精品电影| 亚洲五月综合| 成人综合一区| 国产亚洲午夜| 麻豆一区二区三| 久久久久蜜桃| 婷婷精品在线| 99精品国产一区二区三区| 一区二区三区国产盗摄| 日韩精品免费一区二区夜夜嗨| 国产精品久久久亚洲一区| 国产成人精品免费视| 免费观看久久久4p| 欧美日韩1区| 婷婷激情一区| 日本不卡在线视频| 久久精品国产亚洲夜色av网站 | 精品视频在线观看网站| 伊人久久大香伊蕉在人线观看热v| 国产极品模特精品一二| 久久在线视频免费观看| 免费看日韩精品| 成人午夜网址| 香蕉成人av| 日韩激情啪啪| 三上悠亚国产精品一区二区三区 | 国产精久久久| 日韩av中文在线观看| 欧美专区一区二区三区| 色偷偷色偷偷色偷偷在线视频| 欧美欧美黄在线二区| 日本精品国产| 亚洲天堂av资源在线观看| 91精品一区国产高清在线gif| 亚洲高清毛片| 久久精品国产999大香线蕉| 日韩综合一区二区| 亚洲精品一级| 黑丝一区二区三区| 欧美.日韩.国产.一区.二区 | 精品视频97| 国产精品成人**免费视频| 国产精品对白| 日韩中文字幕| 中文无码日韩欧| 亚州精品视频| 国产精品任我爽爆在线播放| 久久国产精品免费一区二区三区 | 美女视频黄久久| 国产专区精品| 欧美精品羞羞答答| 中文字幕av一区二区三区四区| 中文亚洲欧美| 18国产精品| 中文在线免费视频| 亚洲欧美高清| 999精品一区| 亚洲精品乱码| 精品视频亚洲| 欧美精品一区二区久久| 一级欧美视频| 亚洲一区资源| 视频一区欧美日韩| 日本一区福利在线| 国产精品网在线观看| 日本不卡免费高清视频在线| 久久网站免费观看| 国产欧美日韩| 先锋影音国产一区| 国产在线|日韩| 91成人小视频| 亚洲黄色免费av| 蜜桃视频免费观看一区| 麻豆视频在线看| 国产精品久久久久9999高清| 91成人精品| 免费在线播放第一区高清av| 久久福利毛片| 久久久成人网| zzzwww在线看片免费| 欧美久久亚洲| 亚洲影院天堂中文av色| 欧美亚洲国产一区| 国产精品99一区二区三区| 日本午夜精品| 免费看黄色91| 久久久久久黄| 免费看一区二区三区| 欧美日韩一视频区二区| 免费看日韩精品| 亚洲激情精品| 中文字幕系列一区| 精品国产午夜| 久久av电影| 国产精品毛片久久久| 日本视频一区二区| 欧美一区二区三区久久| 亚洲免费资源| 蜜桃av一区二区三区电影| 蜜臀91精品国产高清在线观看| 日韩免费视频| 精品色999| 国产66精品| 一区二区三区四区日本视频| 精品三级久久久| 日韩av二区| 日韩高清欧美| 美女毛片一区二区三区四区| 亚洲精品va| 亚洲我射av| 国产欧美日韩一区二区三区在线| 国产精品夜夜夜| 欧美国产偷国产精品三区| 岛国av在线播放| 免费黄色成人| 中文字幕日韩亚洲| 日本中文字幕视频一区| 久久精品99国产精品| 精品国产一区二| 另类中文字幕国产精品| 麻豆精品91| 久久99高清| 午夜精品影院| 日本天堂一区| 日韩av首页| 蜜臀av性久久久久蜜臀aⅴ流畅 | 亚洲欧洲日韩| 日韩福利视频导航| 亚洲性色av| 四虎在线精品| 欧美一区久久久| 日韩精品一页| 亚洲五月婷婷| 日本午夜精品久久久久| 婷婷成人在线| 国产精选一区| 五月天久久久| 日韩大片在线播放| 久久国产视频网| aa亚洲婷婷| 五月婷婷亚洲| 日韩精品dvd| 日韩二区在线观看| 国产91一区| 黄色aa久久| 国产欧美一区二区色老头| 影音先锋国产精品| 精品视频一区二区三区四区五区 | 日韩av中文字幕一区二区| 欧洲亚洲一区二区三区| 国产精品1区| 国产精品亚洲综合色区韩国 | 蜜桃久久久久久| 欧美国产小视频| 精品视频国产| 国产精品亚洲综合色区韩国| 亚洲影院天堂中文av色| 亚洲国产日韩欧美在线| 久久精品123| 日本在线视频一区二区| 91一区二区|