5_v-on.html 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>Document</title>
  7. <style>
  8. .box1{
  9. width: 300px;
  10. height: 300px;
  11. background-color: red;
  12. }
  13. .box2{
  14. width: 200px;
  15. height: 200px;
  16. background-color: green;
  17. }
  18. .box3{
  19. width: 100px;
  20. height: 100px;
  21. background-color: blue;
  22. }
  23. </style>
  24. </head>
  25. <body>
  26. <div id="app">
  27. <div>{{str}}</div>
  28. <!-- v-on: 事件绑定指令 可以将事件绑定到标签上 -->
  29. <!-- v-on: 可以缩写为 @ -->
  30. <!-- <button v-on:click="changeStr">按钮</button> -->
  31. <button @click="changeStr">按钮</button>
  32. <div class="box1" v-on:click="box1Fun">
  33. <div class="box2" v-on:click="box2Fun">
  34. <!-- .stop 阻止事件冒泡 -->
  35. <div class="box3" v-on:click.stop="box3Fun"></div>
  36. </div>
  37. </div>
  38. <!-- .prevent 阻止默认行为 -->
  39. <div @contextmenu.prevent="menuFun">hello world</div>
  40. <!-- a 标签href如果不写地址默认会刷新页面, -->
  41. <!-- 点击不会刷新页面 修改href为javascript:void(0) 相当于执行一段空的js语法 -->
  42. <a href="javascript:void(0)" >百度</a>
  43. </div>
  44. <script src="./js/vue.js"></script>
  45. <script>
  46. new Vue({
  47. el:"#app",
  48. data:{
  49. str:"hello world"
  50. },
  51. // vue2当中用来定义函数及事件处理函数的地方
  52. methods:{
  53. changeStr(){
  54. // console.log("按钮被点击了");
  55. console.log(this.str);
  56. this.str = "你好世界";
  57. },
  58. box1Fun(){
  59. console.log("box1被点击了");
  60. },
  61. box2Fun(){
  62. console.log("box2被点击了");
  63. },
  64. box3Fun(event){
  65. // console.log(event)
  66. // 阻止事件冒泡
  67. // event.stopPropagation();
  68. console.log("box3被点击了");
  69. },
  70. menuFun(event){
  71. console.log("右键点击了");
  72. // 阻止默认行为
  73. // event.preventDefault();
  74. }
  75. }
  76. })
  77. </script>
  78. </body>
  79. </html>