You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					96 lines
				
				2.4 KiB
			
		
		
			
		
	
	
					96 lines
				
				2.4 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								<!DOCTYPE html>
							 | 
						||
| 
								 | 
							
								<html lang="en">
							 | 
						||
| 
								 | 
							
								<head>
							 | 
						||
| 
								 | 
							
								    <meta charset="UTF-8">
							 | 
						||
| 
								 | 
							
								    <title>事件修饰符</title>
							 | 
						||
| 
								 | 
							
								    <script type="text/javascript" src="../vue.js"></script>
							 | 
						||
| 
								 | 
							
								    <style>
							 | 
						||
| 
								 | 
							
								        *{
							 | 
						||
| 
								 | 
							
								            margin-top: 20px;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        .demo1{
							 | 
						||
| 
								 | 
							
								            height: 50px;
							 | 
						||
| 
								 | 
							
								            background-color: skyblue;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        .box1{
							 | 
						||
| 
								 | 
							
								            height: 80px;
							 | 
						||
| 
								 | 
							
								            background-color: skyblue;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        .box2{
							 | 
						||
| 
								 | 
							
								            width: 60px;
							 | 
						||
| 
								 | 
							
								            background-color: orange;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        .box3{
							 | 
						||
| 
								 | 
							
								            height: 80px;
							 | 
						||
| 
								 | 
							
								            background-color: blue;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        .list{
							 | 
						||
| 
								 | 
							
								            height: 200px;
							 | 
						||
| 
								 | 
							
								            width: 200px;
							 | 
						||
| 
								 | 
							
								            background-color: bisque;
							 | 
						||
| 
								 | 
							
								            overflow: auto;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        li{
							 | 
						||
| 
								 | 
							
								            height: 100px;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    </style>
							 | 
						||
| 
								 | 
							
								</head>
							 | 
						||
| 
								 | 
							
								<body>
							 | 
						||
| 
								 | 
							
								<div id="root">
							 | 
						||
| 
								 | 
							
								<!--    阻止默认操作-->
							 | 
						||
| 
								 | 
							
								    <h2>你好 {{name}}!!</h2>
							 | 
						||
| 
								 | 
							
								    <a href="https://www.baidu.com" target="_blank" @click.prevent="showView">阻止默认操作</a>
							 | 
						||
| 
								 | 
							
								<!--    停止冒泡-->
							 | 
						||
| 
								 | 
							
								    <div class="demo1" @click="showView">
							 | 
						||
| 
								 | 
							
								        <button @click.stop="showView">停止冒泡</button>
							 | 
						||
| 
								 | 
							
								    </div>
							 | 
						||
| 
								 | 
							
								<!--    事件只触发一次-->
							 | 
						||
| 
								 | 
							
								    <button @click.once="showView">事件只触发一次</button>
							 | 
						||
| 
								 | 
							
								<!--    事件捕获模式-->
							 | 
						||
| 
								 | 
							
								    <div class="box1" @click.capture="showMsg(1)">
							 | 
						||
| 
								 | 
							
								        div1
							 | 
						||
| 
								 | 
							
								        <div class="box2" @click="showMsg(2)">
							 | 
						||
| 
								 | 
							
								            div2
							 | 
						||
| 
								 | 
							
								        </div>
							 | 
						||
| 
								 | 
							
								    </div>
							 | 
						||
| 
								 | 
							
								<!--    self控制触发事件-->
							 | 
						||
| 
								 | 
							
								    <div class="box3" @click.self="showInfo">
							 | 
						||
| 
								 | 
							
								        <button @click="showInfo">self控制触发事件</button>
							 | 
						||
| 
								 | 
							
								    </div>
							 | 
						||
| 
								 | 
							
								<!--    passive优先处理时间,不用等待事件绑定功能执行完毕,多用于移动端-->
							 | 
						||
| 
								 | 
							
								    <ul @wheel.passive="demo" class="list">
							 | 
						||
| 
								 | 
							
								        <li>1</li>
							 | 
						||
| 
								 | 
							
								        <li>2</li>
							 | 
						||
| 
								 | 
							
								        <li>3</li>
							 | 
						||
| 
								 | 
							
								        <li>4</li>
							 | 
						||
| 
								 | 
							
								    </ul>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								</div>
							 | 
						||
| 
								 | 
							
								<script>
							 | 
						||
| 
								 | 
							
								    new Vue({
							 | 
						||
| 
								 | 
							
								        el: '#root',
							 | 
						||
| 
								 | 
							
								        data: {
							 | 
						||
| 
								 | 
							
								            name: '哈哈'
							 | 
						||
| 
								 | 
							
								        },
							 | 
						||
| 
								 | 
							
								        methods: {
							 | 
						||
| 
								 | 
							
								            showView(e){
							 | 
						||
| 
								 | 
							
								                // e.preventDefault()  // 禁用默认事件
							 | 
						||
| 
								 | 
							
								                // e.stopPropagation()  // 禁用冒泡
							 | 
						||
| 
								 | 
							
								                alert("hahahaha!!!")
							 | 
						||
| 
								 | 
							
								            },
							 | 
						||
| 
								 | 
							
								            showMsg(msg){
							 | 
						||
| 
								 | 
							
								                console.log(msg)
							 | 
						||
| 
								 | 
							
								            },
							 | 
						||
| 
								 | 
							
								            showInfo(e){
							 | 
						||
| 
								 | 
							
								                console.log(e.target)
							 | 
						||
| 
								 | 
							
								            },
							 | 
						||
| 
								 | 
							
								            demo(){
							 | 
						||
| 
								 | 
							
								                for (let i=0; i<=10000; i++) {
							 | 
						||
| 
								 | 
							
								                    console.log('@')
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    })
							 | 
						||
| 
								 | 
							
								</script>
							 | 
						||
| 
								 | 
							
								</body>
							 | 
						||
| 
								 | 
							
								</html>
							 |