Vue之@click、事件修飾符@click.stop與@click.prevent、按鍵修飾符@keyup.enter


1、綁定監聽@click:

(以監聽click為例,其他如keyup,用法類似)  v-on:click="fun"
  @click="fun"
  @click="fun(參數)"

  <button @click="test1">test1</button>
  <button @click="test2('abc')">test2</button>
  <button @click="test3('abcd', $event)">test3</button>
 
  methods: {
      test1(eve) {//test1函數沒有參數,默認傳遞 $event 
        alert(eve.target.innerHTML)  //test1
      },
      test2 (msg) { //test1函數有參數,傳遞該參數
        alert(msg)  // abc
      },
      test3 (msg, event) { //有參數,如果想獲取到enevt,則函數中需要寫 $event
        alert(msg+'---'+event.target.textContent)  // abcd---test3
      }
   }

 

2、@click.stop與@click.prevent

@click.stop 阻止事件冒泡

<div id="app">
        <div v-on:click="dodo">
            <button v-on:click="doThis">阻止單擊事件繼續傳播</button>
        </div>
</div>

    <script>
        var app = new Vue({
            el: "#app",
            data: {
                name: "Vue.js"
            },
            methods: {
                doThis: function () {
                    alert("noclick");
                },
                dodo: function () {
                    alert("dodo");
                }
            }
        });
    </script>
//將會先彈出“noclick”,再彈出“dodo”。
<div id="app">
        <div v-on:click="dodo">
            <button v-on:click.stop="doThis">阻止單擊事件繼續傳播</button>
        </div>
    </div>

    <script>
        var app = new Vue({
            el: "#app",
            data: {
                name: "Vue.js"
            },
            methods: {
                doThis: function () {
                    alert("noclick");
                },
                dodo: function () {
                    alert("dodo");
                }
            }
        });
    </script>
//只彈出“noclick”

 

@click.prevent 阻止事件的默認行為,

<a href="http://www.baidu.com" @click.prevent="test4">百度一下</a>   //阻止a標簽跳轉,僅執行函數test4

<form  action="/xxx"   @submit.prevent="test5">   //阻止表單提交,僅執行函數test5

         <input type="submit" value="注冊">
</form>

 

3、按鍵修飾符

@keyup.enter

//按下enter時,執行方法test7

<input type="text" @keyup.enter="test7">

methods: {

      test7 (event) {
        console.log(event.keyCode)
        alert(event.target.value)
      }

}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM