本文主要讲解事件冒泡,事件绑定的简写,事件默认行为,按键码等一系列与事件相关的知识.

一、事件绑定的简写,@事件类型.  之前我的[js高手之路] vue系列教程 - vue的事件绑定与方法(2) 用的是v-on绑定

     window.onload = function(){
var c = new Vue({
el : 'body',
methods : {
say : function(){
alert( '你好' );
}
}
});
}
 <input type="button" value="点我" @click="say();"/>

二、传递事件对象

     window.onload = function(){
var c = new Vue({
el : 'body',
methods : {
say : function(e){
alert( e.clientX );
}
}
});
}
 <input type="button" value="点我" @click="say($event);"/>

三、事件冒泡

     window.onload = function(){
var c = new Vue({
el : 'body',
methods : {
say : function(){
alert('你好');
},
say2 : function(){
alert( '你好啊' );
}
}
});
}
     <div id="box">
<div @click="say2();">
<input type="button" value="点我" @click="say();"/>
</div>
</div>

四、阻止事件冒泡:有两种方式,一种是原生方式,一种是vue提供的stop

         var c = new Vue({
el: 'body',
methods: {
say: function (ev) {
alert('你好');
ev.cancelBubble = true;
},
say2: function () {
alert('你好啊');
}
}
});
 <div id="box">
<div @click="say2();">
<input type="button" value="点我" @click="say($event);"/>
</div>
</div>
  window.onload = function () {
var c = new Vue({
el: 'body',
methods: {
say: function (ev) {
alert('你好');
},
say2: function () {
alert('你好啊');
}
}
});
}
 <div id="box">
<div @click="say2();">
<input type="button" value="点我" @click.stop="say();"/>
</div>
</div>

五、右键菜单的默认行为: 弹出右键菜单

         window.onload = function () {
var c = new Vue({
el: 'body',
methods: {
say: function () {
alert('你好'); //执行完之后 会弹出右键菜单
}
}
});
}
 <input type="button" value="点我" @contextmenu="say();"/>

2种方式阻止右键菜单的默认行为:

原生方式:

         window.onload = function () {
var c = new Vue({
el: 'body',
methods: {
say: function (ev) {
alert('你好'); //执行完之后 会弹出右键菜单
ev.preventDefault();
}
}
});
}
 <div id="box">
<input type="button" value="点我" @contextmenu="say($event);"/>
</div>

vue提供的prevent方式

         window.onload = function () {
var c = new Vue({
el: 'body',
methods: {
say: function () {
alert('你好');
}
}
});
} <div id="box">
<input type="button" value="点我" @contextmenu.prevent="say();"/>
</div>

keydown事件绑定:

         window.onload = function () {
var c = new Vue({
el: 'body',
methods: {
say: function () {
alert('你好');
}
}
});
} <div id="box">
<input type="text" @keydown="say();"/>
</div>

按键码keycode:

         window.onload = function () {
var c = new Vue({
el: 'body',
methods: {
say: function (ev) {
alert( ev.keyCode );
}
}
});
} <div id="box">
<input type="text" @keydown="say($event);"/>
</div>

按键的判断方式: 按键码与英文方法

1,根据回车键的按键码keycode等于13判断

         window.onload = function () {
var c = new Vue({
el: 'body',
methods: {
say: function (ev) {
if( ev.keyCode == 13 ){
alert( '你按下去的是回车键' );
}
}
}
});
} <div id="box">
<input type="text" @keyup="say($event);"/>
</div>

简写方式:

         methods: {
say: function () {
alert( '你按下去的是回车键' );
}
} //html代码
<input type="text" @keyup.13="say();"/>

enter判断:

         methods: {
say: function () {
alert( '你按下去的是回车键' );
}
}
//html代码
<input type="text" @keyup.enter="say();"/>

方向键判断:

         window.onload = function () {
var c = new Vue({
el: 'body',
methods: {
say: function () {
alert('左方向键');
},
say2: function () {
alert('右方向键');
},
say3: function () {
alert('上方向键');
},
say4: function () {
alert('下方向键');
},
}
});
}
 <div id="box">
<input type="text" @keyup.left="say();"/>
<input type="text" @keyup.right="say2();"/>
<input type="text" @keyup.up="say3();"/>
<input type="text" @keyup.down="say4();"/>
<br/>
<input type="text" @keyup.37="say();"/>
<input type="text" @keyup.39="say2();"/>
<input type="text" @keyup.38="say3();"/>
<input type="text" @keyup.40="say4();"/>
</div>

[js高手之路] vue系列教程 - 事件专题(4)的更多相关文章

  1. [js高手之路] vue系列教程 - vue的事件绑定与方法(2)

    一.在vue中,绑定事件,用v-on:事件类型, 如绑定一个点击事件, 我们可以这样子做 window.onload = function () { var c = new Vue({ el : 'b ...

  2. [js高手之路] vue系列教程 - vue的基本用法与常见指令(1)

    本系列课程选用vue的版本为1.0.21, 什么是vue? vue是由尤雨溪开发的一款基于MVVM的框架,M->模型,V->视图, 也就是说模型数据改变了,视图也跟着改变, 视图内容改变, ...

  3. [js高手之路] vue系列教程 - 实现留言板todolist(3)

    通过前面两篇文章的的学习,我们掌握了vue的基本用法. 本文,就利用这些基础知识来实现一个留言板, 老外把他称之为todolist. 第一步.使用bootstrap做好布局 <!DOCTYPE ...

  4. [js高手之路] vue系列教程 - 组件定义与使用上部(7)

    组件是vue框架比较核心的内容,那么什么是组件呢? 通俗点讲:组件是由一堆html, css, javascript组成的代码片段, 作用是为了实现模块的重用 组件的基本用法: <div id= ...

  5. [js高手之路] vue系列教程 - 绑定class与行间样式style(6)

    一.绑定class属性的方式 1.通过数组的方式,为元素绑定多个class <style> .red { color:red; /*color:#ff8800;*/ } .bg { bac ...

  6. [js高手之路] vue系列教程 - 绑定设置属性的多种方式(5)

    一.设置属性的值: {{data中的数据}} window.onload = function () { var c = new Vue({ el : '#box', data : { url : ' ...

  7. [js高手之路] es6系列教程 - 对象功能扩展详解

    第一:字面量对象的方法,支持缩写形式 //es6之前,这么写 var User = { name : 'ghostwu', showName : function(){ return this.nam ...

  8. [js高手之路] es6系列教程 - 迭代器,生成器,for...of,entries,values,keys等详解

    接着上文[js高手之路] es6系列教程 - 迭代器与生成器详解继续. 在es6中引入了一个新的循环结构for ....of, 主要是用来循环可迭代的对象,那么什么是可迭代的对象呢? 可迭代的对象一般 ...

  9. [js高手之路] es6系列教程 - 迭代器与生成器详解

    什么是迭代器? 迭代器是一种特殊对象,这种对象具有以下特点: 1,所有对象都有一个next方法 2,每次调用next方法,都会返回一个对象,该对象包含两个属性,一个是value, 表示下一个将要返回的 ...

随机推荐

  1. “use strict” 严格模式使用(前端基础系列)

    ECMAscript5添加一种严格模式的运行模式("use strict"),让你的js语句在更加严格的环境下进行运行: 一.主要作用: 消除版本javascript中一些不合理及 ...

  2. flask_login 整合 pyjwt + json 简易flask框架

    现在很多框架都实现前后端分离,主要为了适应以下几个目的: 1,前后端的分离,可以使前端开发和后端开发更加分工明确,而不是后端还需要在视图模板中加入很多{% XXXX %}标签 2,是为了适应跨域调用或 ...

  3. 谷哥的小弟学前端(11)——JavaScript基础知识(2)

    探索Android软键盘的疑难杂症 深入探讨Android异步精髓Handler 具体解释Android主流框架不可或缺的基石 站在源代码的肩膀上全解Scroller工作机制 Android多分辨率适 ...

  4. Java SpringMVC 定时任务

    1.web.xml 2.spring-mvc.xml <?xml version="1.0" encoding="UTF-8"?> <bean ...

  5. 项目(1)----用户信息管理系统(5)---(剩余jsp界面)

    完成剩余jsp界面 首页界面前面我写了,接下来还有就是一个显示所有用户界面 1:注册界面 2:显示所有用户信息界面 1:注册界面 <%@ page language="java&quo ...

  6. xCode8以及iOS10 的新特性

    其他:ios10中 适配问题(1.系统判断方法失效:2.隐私数据的访问问题:3.UIColor 问题4.真彩色的显示5.ATS问题6.UIStatusBar问题7.UITextField8.UserN ...

  7. iOS MJRefresh上拉加载更多

    1.导入MJRefresh包 2.在类中引入:#import "MJRefresh.h" 3.添加footerView 添加加载更多的UI样式: MJRefreshAutoNorm ...

  8. 一张图讲清楚TCP流量控制

  9. 强推一款开源集成开发环境——Geany

    本人是一个标标准准的程序员,集成开发环境在电脑上大概看一下有:Code Blocks(C/C++),VS(C#,C/C++),eclipse(Java),Hbuild和web storm(前端),py ...

  10. 程序员的自我救赎---10.1:APP版本控制系统

    <前言> (一) Winner2.0 框架基础分析 (二)PLSQL报表系统 (三)SSO单点登录 (四) 短信中心与消息中心 (五)钱包系统 (六)GPU支付中心 (七)权限系统 (八) ...