Vue事件获取事件对象之event.currentTarget详解

 更新时间:2024年03月24日 08:42:16   作者:姜泥断了姒  
这篇文章主要介绍了Vue事件获取事件对象之event.currentTarget,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

vue事件获取事件对象event.currentTarget

在学习vue的时候,在进行tab栏切换的时候,突然发现不能像jquery一样$(this)获取事件,然后才发现在vue里面获取事件对象可以用event.currentTarget来获取

获取事件对象

  • js的事件可以直接用this获取事件对象,
  • jQuery可以使用$(this)来获取事件对象。
  • vue借助事件的 event 对象 currentTarget 获取事件对象

event.currentTarget

  • HTML
 <ul>
     <li v-for="(item,item2) in catitmlst" v-bind:index="item2" v-on:click="eventObj">
         <span id="eventobj">事件对象</span>
     </li>
</ul>
  • JS
//获取事件对象
    eventObject(event){
        let html = event.currentTarget
        console.log(html)
        //获得点击元素的前一个元素
        event.currentTarget.previousElementSibling.innerHTML
        //获得点击元素的第一个子元素
        event.currentTarget.firstElementChild
        //获得点击元素的下一个元素
        event.currentTarget.nextElementSibling
        //获得点击元素中id为eventobj的元素
        event.currentTarget.getElementById("eventobj")
        //获得点击元素的index(自定义的属性)
        event.currentTarget.getAttribute('index')
        //获得点击元素的父级元素
        event.currentTarget.parentElement
        //获得点击元素的前一个元素的第一个子元素的HTML值
        event.currentTarget.previousElementSibling.firstElementChild.innerHTML
    }

我目前还不是特别清楚,等我彻底搞明白了,我会在重新解释一下vue获取事件对象。

IE不兼容event.currentTarget

vue开发时实现点击选中获取DOM效果使用:

JSON.parse(event.currentTarget.nextElementSibling.innerText);

但IE不兼容,改换为:

JSON.parse(event.srcElement.parentNode.lastChild.innerText);

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • vue实现todolist基本功能以及数据存储功能实例详解

    vue实现todolist基本功能以及数据存储功能实例详解

    本文通过实例代码给大家介绍了vue实现todolist基本功能以及数据存储功能,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-04-04
  • 基于vue+elementPlus的动态导航标签栏tabs具体过程

    基于vue+elementPlus的动态导航标签栏tabs具体过程

    这篇文章主要给大家介绍了关于基于vue+elementPlus的动态导航标签栏tabs的相关资料,本文主要详述了在系统上添加导航标签栏功能时,首次尝试的过程,并且希望能为同行提供一个小demo,需要的朋友可以参考下
    2024-10-10
  • iphone刘海屏页面适配方法

    iphone刘海屏页面适配方法

    这篇文章主要介绍了iphone刘海屏页面适配方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05
  • Vue3+Vite如何解决“找不到模块“@/components/xxx.vue”或其相应的类型声明ts(2307)”

    Vue3+Vite如何解决“找不到模块“@/components/xxx.vue”或其相应的类型声明ts(2307)”

    在Vue项目中使用Vite时,可能因版本差异而需修改tsconfig.app.json而非tsconfig.json以解决编译错误,本文分享个人解决经验,供参考
    2024-10-10
  • django+vue实现跨域的示例代码

    django+vue实现跨域的示例代码

    在我们的项目中需要用到django实现跨域的问题,本文通过示例代码给大家详细介绍django+vue实现跨域的方法,感兴趣的朋友跟随小编一起看看吧
    2022-03-03
  • vue中的数据绑定原理的实现

    vue中的数据绑定原理的实现

    本篇文章主要介绍了vue中的数据绑定原理的实现,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07
  • vue 怎么创建组件及组件使用方法

    vue 怎么创建组件及组件使用方法

    vue中的核心就是组件,组件 (Component) 是 Vue.js 最强大的功能之一。组件可以扩展 HTML 元素,封装可重用的代码,下面通过本文重点给大家介绍vue 创建组件及组件使用方法,感兴趣的朋友一起看看吧
    2017-07-07
  • vue中使用go()和back()两种返回上一页的区别说明

    vue中使用go()和back()两种返回上一页的区别说明

    这篇文章主要介绍了vue中使用go()和back()两种返回上一页的区别说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • vue-cli创建的项目,配置多页面的实现方法

    vue-cli创建的项目,配置多页面的实现方法

    下面小编就为大家分享一篇vue-cli创建的项目,配置多页面的实现方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-03-03
  • vue3中Teleport和Suspense的具体使用

    vue3中Teleport和Suspense的具体使用

    本文主要介绍了vue3中Teleport和Suspense的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07

最新评论