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