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>
 |