Vue中$event的用法

通常的用法是用来获取当前元素的最新值。$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>

输出结果为: 123

当我们输出打印event这个参数的时候,我们可以看到很多属性。其中target就表示触发事件的元素。
在这里插入图片描述
target中里面有许多属性,我们可以进行查找。比如当需要获取id的时候可以event.target.id,获取p标签的文本内容也可以为 event.target.innerText。
event.currentTarget 是你绑定事件的元素,通常有以下用法。

#获得点击元素的前一个元素
    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
Vue中,$event是一个特殊的变量,用于在事件处理函数中访问原生的DOM事件对象,主要在模板中的内联事件处理中使用。以下是几种常见的使用方法: ### 基本事件处理 在简单的按钮点击事件中,若要访问鼠标点击事件的原生属性,如 `clientX` 和 `clientY`(鼠标指针在浏览器可视区域中的水平和垂直坐标),可以使用 `$event`。示例代码如下: ```vue <template> <button @click="handleClick">点击我</button> </template> <script setup> const handleClick = (e) => { console.log('鼠标点击位置:', e.clientX, e.clientY); }; </script> ``` 这里的 `e` 就是 `$event` 传递过来的原生DOM事件对象,通过它可以访问事件的相关属性 [^1]。 ### 在DOM事件回调函数中获取事件对象 在DOM事件的回调函数中传入参数 `$event`,能够获取到该事件的事件对象。示例如下: ```vue <template> <button @click="getData($event)">按钮</button> </template> <script setup> const getData = (e) => { console.log(e); }; </script> ``` 在这个例子里,`e` 代表了点击按钮时的原生DOM事件对象 [^2] [^3]。 ### 获取当前元素的节点相关信息 通过 `$event` 可以获取当前点击元素的节点信息。示例如下: ```vue <template> <p @click="clickfun($event)">点击</p> </template> <script> export default { methods: { clickfun(e) { // e.target 是当前点击的元素 // e.currentTarget 是绑定事件的元素 // 获得点击元素的前一个元素 console.log(e.currentTarget.previousElementSibling); // 获得点击元素的第一个子元素 console.log(e.currentTarget.firstElementChild); // 获得点击元素的下一个元素 console.log(e.currentTarget.nextElementSibling); // 获得点击元素中id为string的元素 console.log(e.currentTarget.getElementById("string")); // 获得点击元素的string属性 console.log(e.currentTarget.getAttributeNode('string')); // 获得点击元素的父级元素 console.log(e.currentTarget.parentElement); // 获得点击元素的前一个元素的第一个子元素的HTML值 console.log(e.currentTarget.previousElementSibling.firstElementChild.innerHTML); } } } </script> ``` 在 `clickfun` 方法中,`e` 为 `$event` 传递的事件对象,通过 `e.currentTarget` 可以操作绑定事件的元素节点 [^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值