如何用vue 语法 给html元素绑定原生js DOM 事件

问题描述

最近在使用vue全家桶开发页面,而且也是刚入门vue,很多vue的东西都是现学现用。 想要给一个html元素绑定DOM事件,我以前 肯定是用javascipt 的DOM 操作,但是既然项目用了vuejs ,我就想用vuejs实现一下,但是官方文档的这块写的非常简略,我就补充一下

解决问题

首先需要分两种情况:

当想要绑定的元素是html原生标签,示例如下:

// 绑定点击事件
<p v-on:click="function">我是原生html标签</p>

// 绑定鼠标相关事件
// 鼠标移动到元素上
<p v-on:mouseover="function">我是原生html标签</p>
// 鼠标移开元素
<p v-on:mouseout="function">我是原生html标签</p>
// 鼠标按键按下
<p v-on:mousedown="function">我是原生html标签</p>
// 鼠标按键松开
<p v-on:mouseup="function">我是原生html标签</p>


观察了这么多示例,应该已经发现,只要将 原生DOM事件的 on  去掉 , 跟在v-on(@):后面即可 。


如果是一个VUE组件的标签,上面的写法会失效,用法略有不同

// 绑定点击事件
<component-name v-on:click.native="function"></component-name>

// 鼠标移动到元素上
<component-name v-on:mouseover.native="function"></component-name>
即在 事件后面加 .native ,即可对组件和子组件 进行事件绑定

------------------------------------------------------------------------------------------------------------------------------------

可以直接用js 语法处理,也可以写一个函数名,函数放在 vue对象 的methods 中,此函数可以获得一个 参数, 这个参数是原生js 的 event 对象 ,在函数中就可以对 event对象进行操作了。  附上 js DOM event的文档

我用过的api是  event.target (获得事件对应的html元素节点对象)


猜你喜欢

转载自blog.csdn.net/Clark_Fitz817/article/details/79138141