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