Vue v-on,vue $on事件使用方法

  Vue v-on,vue $on事件使用方法

  本文主要介绍了vue中的v-on参数,具有很好的参考价值。希望对你有帮助。来和边肖一起看看吧。

  

vue中v-on:clock的使用

  最近在学习vue.js框架。把遇到的一些问题写下来,以便以后查阅。

  首先,这是一个页面(为了便于观察,将每个标签逐一涂上颜色):

  其中html代码:

  div class=groupbody

  ul class=list

   Li v-for= cell in todo . group body class= pagegroupcell v-on:click= exchange($ event)

  div class= pagecelltext“{ cell . left } }/div

  div class= pagecellmin { { cell . min } }/div

  img src= img/images/direction/right . png style= width:20px;高度:30px浮动:对;上边距:5px

  div class= pagecellmsg { { cell . right } }/div

  /李

  /ul

  div class=clear /div

  /div

  js零件代码:

  交换:函数(事件){

  Alert(“开始执行方法”);

  var a=event.target

  var cellimg=a . getelementsbytagname( div )[0];

  var msg=cellimg.innerText

  page 2 data as . todos[0]。groupheader=msg

  Alert(“执行中的方法”);

  var b=document . getelementbyid( page 1 );

  b . style . display= none ;

  var c=document . getelementbyid( page 2 );

  c . style . display= block ;

  Alert(“方法执行结束”);

  }

  此时,如果你点击单元格中的彩色区域(即当你点击李标签的文字标签时),只会执行第一个alert()方法,后两个方法都不会执行。

  

原因就是这个方法的参数event:

  如果标签绑定的方法中有一个参数$event,那么可以使用event.target来获取绑定到当前点的点击事件的标签。

  但是,该参数也可能导致一些问题。例如,如果无论单击li选项卡的哪个部分都要完成click事件方法,则参数event不适用。这个时候只能想别的办法了。

  

解决方法:

  在li中有一个v-for循环,其中有一个cell对象,它驻留在户主li标签中的数据中。你只需要把这个对象传递给click事件方法,就可以通过这个对象达到你刚刚想要达到的目的。

  修改后的html代码:

  div class=groupbody

  ul class=list

   Li v-for= cell in todo . group body class= pagegroupcell v-on:click= exchange(cell)

  div class= pagecelltext“{ cell . left } }/div

  div class= pagecellmin { { cell . min } }/div

  img src= img/images/direction/right . png style= width:20px;高度:30px浮动:对;上边距:5px

  div class= pagecellmsg { { cell . right } }/div

  /李

  /ul

  div class=clear /div

  /div

  修改后的js代码:

  交换:函数(单元格){

  Alert(“开始执行方法”);

  page 2 data as . todos[0]。groupheader=cell.left

  警报(“进行中”);

  var b=document . getelementbyid( page 1 );

  b . style . display= none ;

  var c=document . getelementbyid( page 2 );

  c . style . display= block ;

  Alert(“方法执行结束”);

  }

  此时,整个触电事件的执行方法可以完整执行,后续页面的切换也可以完成。

  补充:Vue中关于v-on绑定点击事件时候的参数问题

  当v-on binding click事件发生时,参数有三种情况,如下所示:

  

绑定的方法后面没有括号

  Button @click=btnClick 单击/button

  脚本

  const app=new Vue({

  方法:{

  btnClick(事件){

  //此时,事件就是当前点击的对象。

  console.log(事件)

  }

  }

  })

  /脚本

  

绑定的方法后面有括号

  Button @click=btnClick()单击/按钮

  脚本

  const app=new Vue({

  方法:{

  btnClick(事件){

  //此时,事件未定义

  console.log(事件)

  }

  }

  })

  /脚本

  

绑定的方法后面有括号,需要传递参数

  Button @click=btnClick(123)单击/按钮

  脚本

  const app=new Vue({

  方法:{

  btnClick(事件){

  //此时事件是123

  console.log(事件)

  }

  }

  })

  /脚本

  

绑定的方法后面有括号,需要传递参数,并且需要当前点击的对象

  !-在这种情况下,如果需要传递当前单击的对象,参数必须是$ event-

  !-如果要在第一个位置传递一个数字,不需要引用。如果你要传递一个字符串,必须要加引号,因为如果不加引号,Vue会被解析为变量。此时,如果它没有在数据中定义,您将报告一个错误-

  Button @ click= btnclick (123,$ event) Click /button

  脚本

  const app=new Vue({

  方法:{

  btnClick(数量,事件){

  //此时num为123,event为当前点击的对象,

  console.log(数量,事件)

  }

  }

  })

  /脚本

  以上个人经历,希望能给大家一个参考,也希望大家多多支持我们。如有错误或不足之处,请不吝赐教。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: