函数的参数对象$event的使用和利用他找到事件对象

一,常用方式:input中获取当前内容

$event.target.value

示例:

 <body>
    <div id="app">
      <input type="text" @click="abc($event)" value="123" />
    </div>
    <script>
      var vm = new Vue({
        el: "#app",
        data: {},
        methods: {
          abc(event) {
            console.log(event.target.value);
          }
        }
      });
    </script>
  </body>

二,$event.target获取触发事件的元素

当我们输出打印event这个参数的时候,我们可以看到很多属性。其中target就表示触发事件的元素。
在target中里面有许多属性,我们可以进行查找。比如当需要获取id的时候可以event.target.id,获取p标签的文本内容也可以为 event.target.innerText,还有常见的是获取事件元素的高度$event.target.offsetHeight

三,$event.currentTarget获取绑定事件的元素

触发事件的元素和绑定事件的元素,这是两个不同的概念,需要理解事件冒泡,事件目标和事件捕获,还要会明白事件委托的概念,可以看这篇文章:
https://blog.csdn.net/weixin_42349568/article/details/109019097
对于这里的应用,可以用这个例子来理解:
在这里插入图片描述
这里有三个二维码,是通过v-for循环出来的:

<!-- 二维码区域 -->
      <div class="qrCode">
        <div class="image" v-for="(item,index) in QR" :key="index">
            <span>{{item.title}}</span>
            <div class="maskbox">
              <img :src="item.src" alt="">
              <div class="mask">
                <button @click="getNewQR(index)">重新生成</button>
                <button @click="down($event)">下载二维码</button>
              </div>
            </div>
        </div>
      </div>

可以看到,我为了区分点击重新生成按钮,是在哪个二维码区域生成的,把index做为参数传入了。另一个下载二维码的按钮,我就是使用$event来处理:

//下载图片
      down(e) { // 保存二维码
        var oQrcode = e.currentTarget.parentElement.previousElementSibling     
        var url = oQrcode.src
        this.downloadIamge(url, '二维码')      //这是封装的下载图片的函数,可忽略
      },

我想要下载对应的二维码,就需要点击这个按钮时,获取到它对应的img元素,但是我现在事件是绑定在button上的,为了获取到这个img标签元素,就可以利用这个来获取。
有的人又说,可以通过设置$ref属性来获取对应的dom元素,但是这里是v-for循环出来的,三个二维码区域都是有这个一样的ref属性的。不能直接获取到我点击的哪个二维码图片。
也就是说,可以使用原生的parentElement这些东西,来获取和你事件绑定相关的元素节点。
常用的有:

    #获得点击元素的前一个元素
    e.currentTarget.previousElementSibling.innerHTML
    #获得点击元素的第一个子元素
    e.currentTarget.firstElementChild
    # 获得点击元素的下一个元素
    e.currentTarget.nextElementSibling
    # 获得点击元素中id为string的元素
    e.currentTarget.getElementById("string")
    # 获得点击元素的string属性
    e.currentTarget.getAttributeNode('string')
    # 获得点击元素的父级元素
    e.currentTarget.parentElement
    # 获得点击元素的前一个元素的第一个子元素的HTML值
    e.currentTarget.previousElementSibling.firstElementChild.innerHTML

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JS中的常用对象[转载]web 技术 2010-06-05 15:00:30 阅读3 评论0 字号:大中小 订阅 [removed] Window For JavaScript 熟练window对象的open、close、alert、confirm、prompt、setTimeout、clearTimeout、setInterval、clearInterval、moveBy、resizeBy、scrollBy方法的使用 掌握window对象的moveTo、resizeTo、scrollTo、print方法的使用 熟练掌握window对象的status、location、name、self、opener属性的使用  Window对象是客户端javascript最高层对象之一,只要打开浏览器窗口,不管该窗口中是否有打开的网页,当遇到BODY、FRAMESET或FRAME元素时,都会自动建立window对象的实例。另外,该对象的实例也可由window.open()方法创建。由于window对象是其它大部分对象的共同祖先,在调用window对象的方法和属性时,可以省略window对象的引用。例如:window.[removed]()可以简写成: [removed]()。  在窗口中觖发本窗口对象的任何方法和属性时可以省去窗口的实例名称。例如给当前的myWin窗口设置status属性时,可以只用status而不用myWin.status。但是,在事件处理中调用location属性、close()方法或open()方法时必须使用实例名称。 6-2-1 window对象的方法 window对象有以下方法: open close alert confirm prompt setTimeout clearTimeout setInterval clearInterval moveBy moveTo resizeBy resizeTo scrollBy scrollTo find back forward home stop print blur focus captureEvent enableExternalCapture disableExternalCapture handleEvent releaseEvent routeEvent scroll   1. open方法   语法格式: window.open(URL,窗口名称,窗口风格)   功能:打开一个新的窗口,并在窗口中装载指定URL地址的网页。   说明: open方法用于打开一个新的浏览器窗口,并在新窗口中装入一个指定的URL地址 ; open方法在打开一个新的浏览器窗口时,还可以指定窗口的名称(第二个参数); open方法在打开一个新的浏览器窗口时,还可以指定窗口的风格(第三个参数), 窗口风格有以下选项,这些选项可以多选,如果多选,各选项之间用逗号分隔: toolbar:指定窗口是否有标准工具栏。当该选项的值为1或yes时,表示有标准 工具栏,当该选项的值为0或no时,表示没有标准工具栏; location:指定窗口是否有地址工具栏,选项的值及含义与toolbar相同; directories:指定窗口是否有链接工具栏,选项的值及含义与toolbar相同; status:指定窗口是否有状态栏,选项的值及含义与toolbar相同; menubar:指定窗口是否有菜单,选项的值及含义与toolbar相同; scrollbar:指定当前窗口文档大于窗口时是否有滚动条,选项的值及含义与 toolbar相同; resizable:指定窗口是否可改变大小,选项的值及含义与toolbar相同; width:以像素为单位指定窗口的宽度,已被innerWidth取代; height:以像素为单位指定窗口的高度,已被innerHeight取代; outerWidth:以像素为单位指定窗口的外部宽度; outerHeight:以像素为单位指定窗口的外部高度; left:以像素为单位指定窗口距屏幕左边的位置; top:以像素为单位指定窗口距屏幕顶端的位置; alwaysLowered:指定窗口隐藏在所有窗口之后,选项的值及含义与toolbar相同 ; alwaysRaised:指定窗口浮在所有窗口之上,选项的值及含义与toolbar相同; dependent:指定打开的窗口为当前窗口的一个子窗口,并随着父窗口的关闭而 关闭,选项的值及含义与toolbar相同; hotke

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值