vue中的事件修饰符(.stop、.prevent、.self、.capture、.once)

时间: 2019-07-12阅读: 27标签: 事件

摘要

使用.stop阻止事件的冒泡行为。

使用.prevent阻止事件的默认行为。

使用.self实现只有点击当前元素才会触发事件处理函数。

使用.capture实现捕获触发事件的机制,即从外部事件开始执行。

使用.once实现事件的触发次数为一次。

需要特别注意.stop和.self的区别:.stop是阻止除了自己之外所有的冒泡事件,而.self是控制自己被点击才会触发事件处理函数,阻止自己被冒泡所影响。


代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>事件修饰符</title>
    <script src="../lib/vue.js"></script>
    <style>
        .app{
            width: 200px;
            height: 200px;
            background: red;
        }
    </style>
</head>
<body>
    <!-- <div class="app" @click.capture="outClick"> -->
        <!-- 使用.capture实现捕获触发事件的机制,即从外部事件开始执行 -->
    <div class="app" @click.self="outClick">
        <!-- 使用.self实现只有点击当前元素才会触发事件处理函数-->
        <input type="button" value="按钮1" @click.stop="innerClick">
        <!-- 使用.stop阻止事件的冒泡行为 -->
        <input type="button" value="按钮2" @click.once="innerClick">
        <!-- 使用.once实现事件的触发次数为一次 -->
        <a href="https://www.baidu.com/" @click.prevent.stop="aClick">有事找百度</a>
        <!-- 使用.prevent阻止事件的默认行为 -->
    </div>
    <script>
        var vm = new Vue({
            el:".app",
            methods:{
                outClick(){
                    alert('我是外面的事件');
                },
                innerClick(){
                    alert('我是内部的事件');
                },
                aClick(){
                    alert('我是超链接的事件');
                }
            }
        })
    </script>
</body>
</html>


链接: http://www.fly63.com/article/detial/4649

如何在React中优雅的处理doubleClick?

上午楼主遇到一个需要处理双击事件的需求,在这里介绍下如何在触发doubleCLick时间的时候, 不触发click事件的解决办法, 顺便分享给大家。解决办法也很简单: 延迟 click事件的处理, 直到判断这个click 不在 doubleClick 中。

jquery的on绑定点击事件执行两次的解决办法

jquery中用.on()给页面中新加的元素添加点击事件时,点击事件源,绑定的事件执行两次,这里的alert会执行两次,相应地数组删除也执行两次,具体代码如下

js事件委托(事件代理)

js中事件冒泡我们知道,子元素身上的事件会冒泡到父元素身上,事件代理就是本来加载子元素身上的事件,加在其父元素身上,其问起产生了,那么多的子元素怎么区分事件本应该是哪个子元素的。 答案就是event对象记录的事件源

vue事件修饰符

在默认情况下,v-model 在每次 input 事件触发后将输入框的值与数据进行同步 。你可以添加 lazy 修饰符,从而转变为使用 change事件进行同步;如果要自动过滤用户输入的首尾空白字符,可以给 v-model 添加 trim 修饰符:

vue.js事件修饰符

在事件处理程序中调用 event.preventDefault() 或 event.stopPropagation() 是非常常见的需求。尽管我们可以在方法中轻松实现这点,但更好的方式是:方法只有纯粹的数据逻辑,而不是去处理 DOM 事件细节。

对JS事件机制的深入理解

发生一个事件时,事件及事件处理句柄会被放入浏览器的事件队列,事件可归为以下几类:浏览器事件:window.load、document.DomContentLoaded等,网络请求事件:ajax、websocket

js事件概念和事件监听

JavaScript使我们有能力创建动态页面,网页中的每个元素都可以产生某些可以触发JavaScript函数的事件。我们可以认为事件是可以被JavaScript侦测到的一种行为。HTML元素大都包含了自己的默认行为,例如:超链接、提交按钮等。

网页浏览器缩放监听

这里的缩放不是指resize事件(改变浏览器窗口大小),而是指浏览器本身的缩放功能,一般使用以下方式进行缩放:ctrl配合鼠标滚轮;ctrl配合-/+/0进行缩放。

原生JS实时监听input框输入值

利用原生JS实时监听input框输入值,原生JS中可以使用oninput,onpropertychange,onchange,oninput,onpropertychange,onchange的用法

JavaScript自定义事件

系统内发生的动作或发生的事情,系统会在事件出现时触发某种信号,提供一个自动加载某种动作的机制。事件三要素:事件源(触发事件的元素也就是你是要对什么东西进行操作);事件(事件的触发方式也就是你要做什么实现所要的交互效果)

fly63.com版权所有,内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权,请与小编联系!情况属实本人将予以删除!

广告赞助文章投稿关于web前端网站点搜索站长推荐网站地图站长QQ:522607023

小程序专栏: 土味情话心理测试脑筋急转弯幽默笑话段子句子语录成语大全