文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

vue使用once修饰符,使事件只能触发一次问题

2024-04-02 19:55

关注

once修饰符,使事件只能触发一次

多个修饰符可以同步使用

<!--定义vue的操作对象-->
<div id="app">
    <!-- 使用self修饰符 点击标签自身时才会执行事件 -->
    <!-- 使用once修饰符 使事件只能触发一次  -->
    <!-- 多个修饰符可以同时使用   -->
    <div class="inner" @click.self.once="divClick">
        <input type="button" value="点击" @click="butClick">
    </div>
</div>
<!--导入vue.js-->
<script src="./vue.js"></script>
<script>
    //创建一个vue实例
    var vm = new Vue({
        el:"#app", //指定实例控制的DOM元素
        data:{ //存储页面数据
        },
        methods:{ //在此处定义实例可用的所有方法
            divClick(){
                console.log('div点击事件')
            },
            butClick(){
                console.log('button点击事件')
            }
        }
    })
</script>

vue事件修饰符(once:prev:stop)

附有同一文件夹下的html文件、js文件和css文件

注释说的很详细

index.html的代码

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>vue</title>
	<link rel="stylesheet" href="style.css" rel="external nofollow" >
	<script src="https://cdn.jsdelivr.net/npm/vue"></script>
</head>
<body>
	<!--vue-app是根容器-->
	<div id="vue-app">
	<h1>Event</h1>
	<button @click.once="add(1)">单击涨一岁</button>
	<button v-on:click="subtract(1)">单击减一岁</button>
	<button @dblclick="add(10)">双击涨十岁</button>
	<button v-on:dblclick="subtract(10)">双击减十岁</button>
	<p>My age is {{age}}</p>
	
	<div id="canvas" v-on:mousemove="updateXY">
	{{x}},{{y}} - 
	<span v-on:mousemove="stopMoving">Stop Moving</span>
	<br>
	<span v-on:mousemove.stop="">Stop Moving</span>
	</div>
	<a v-on:click="alert()" href="https://blog.csdn.net/qq_40647912" rel="external nofollow"  rel="external nofollow" >baidu</a>
	<br>
	<a v-on:click.prevent="alert()" href="https://blog.csdn.net/qq_40647912" rel="external nofollow"  rel="external nofollow" >baidu</a>
	</div>
	</div>
	<script src="app.js"></script>
	
</body>
</html>

app.js的代码

//实例化VUE对象
new Vue({
	el:"#vue-app",
	//仅限于在vue-app容器下
	data:{
		age:30,
		x:0,
		y:0
		},
	methods:{
		add:function(inc){
			this.age += inc;
		},
		subtract:function(dec){
			this.age -= dec;
		},
		updateXY:function(event){
			this.x = event.offsetX;
			this.y = event.offsetY;
		},
		stopMoving:function(event){
			event.stopPropagation();
		},
		alert:function(){
			alert("Hellow world !");
		}
	}
});

style.css代码

#canvas{
	width: 600px;
	padding: 200px 20px;
	text-align: center;
	border: 1px solid #333;
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-前端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯