事件处理
监听事件
可以用v-on监听DOM事件,并在触发时运行一些Javascript代码。
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
<script src="vue.js"></script>
</head>
<body>
<div id='example'>
<button v-on:click="counter += 1">数值:{{counter}}</button>
<!-- 可以将JS代码直接写在v-on中,在下边代码申明counter默认值 -->
</div>
<script type="text/javascript">
var vm = new Vue({
el:'#example',
data: {
counter:0
},
})
</script>
</body>
</html>
但平时的时间处理中代码较为复杂,直接放在v-on指令中时不可行的,所以可以让v-on接受一个需要调用的函数名称。
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
<script src="vue.js"></script>
</head>
<body>
<div id='example'>
<button v-on:click="test('hello')">test</button>
<!-- 在初始化Vue对象中methords属性里定义test函数 -->
</div>
<script type="text/javascript">
var vm = new Vue({
el:'#example',
data: {
counter:0
},
methods: {
// 声明函数以及函数体
test:function(str){
alert('xixi!');
alert(this.counter);//其可调用data中属性值.
alert(str);//可接受形参
}
}
})
</script>
</body>
</html>
有时也需要在内联语句中访问原始DOM事件。可以用特殊变量 $event 把它传入方法:
<body>
<div id='example'>
<button v-on:click="test('hello',$event)">test</button>
<!-- 在此添加event时间 -->
</div>
<script type="text/javascript">
var vm = new Vue({
el:'#example',
data: {
counter:0
},
methods: {
// 声明函数以及函数体
test:function(str,e){
alert('xixi!');
alert(this.counter);//其可调用data中属性值.
alert(str);//可接受形参
console.log(e);//可以在控制台输出该事件
}
}
})
</script>
</body>
控制台即可输出$event事件的相关信息
事件修饰符
具体修饰符可在vue,js官网中的文档查阅
v-on指令可以绑定html元素拥有的所有事件。