vue.js中v-on:textInput无法执行事件问题的解决过程


Posted in Javascript onJuly 12, 2017

前言

最近在学习vue.js框架,学习过程中遇到一些问题,所以记下其中遇到问题的解决过程,避免以后再遇到同样的问题,分享出来也方便遇到这个问题的朋友参考,下面话不多说了,来一起看看详细的介绍:

先来看这段示例代码

<div id="wrap">
  <input type="text" v-on:textInput="fn">
</div>
<script type="text/javascript" src="vue.js"></script>
<script type="text/javascript">
  new Vue({
   el:'#wrap',
   methods:{
    fn:function(){
     console.log('textInput');
    }
   }
  });
</script>

寻找BUG原因步骤

(1)首先通过v-on关键字寻找到 addHandler,此函数传入的事件名竟然是 textinput(正确为textInput,I是大写,而不是小写),错误就定位在这了;然后往上层继续寻找(即父函数)

   注: (onRE.test(name)),var onRE = /^@|^v-on:/;  是通过匹配v-on添加事件

vue.js中v-on:textInput无法执行事件问题的解决过程

(2)processAttrs

vue.js中v-on:textInput无法执行事件问题的解决过程

.....然后傻傻地一层一层往下找,找到了getOuterHTML

vue.js中v-on:textInput无法执行事件问题的解决过程

vue.js中v-on:textInput无法执行事件问题的解决过程

/**
 * Get outerHTML of elements, taking care
 * of SVG elements in IE as well.
 */
function getOuterHTML (el) {
 if (el.outerHTML) {
 return el.outerHTML
 } else {
 var container = document.createElement('div');
 container.appendChild(el.cloneNode(true));
 return container.innerHTML
 }
}

真相大白了,因为vue是利用根原素outerHTML获取里面的dom片段(进行v-on匹配事件监听),然而outerHTML返回转为小写字母的代码片段,导致了textInput转为了 textinput,所以就执行不了;

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
Prototype Class对象学习
Jul 19 Javascript
jQuery 使用手册(一)
Sep 23 Javascript
jQuery分组选择器用法实例
Dec 23 Javascript
jQuery+PHP实现可编辑表格字段内容并实时保存
Oct 09 Javascript
CSS3结合jQuery实现动画效果及回调函数的实例
Dec 27 jQuery
vue二级菜单导航点击选中事件的方法
Sep 12 Javascript
vue axios post发送复杂对象问题
Jun 04 Javascript
layui异步加载table表中某一列数据的例子
Sep 16 Javascript
基于VUE实现判断设备是PC还是移动端
Jul 03 Javascript
利用js canvas实现五子棋游戏
Oct 11 Javascript
关于Vue中$refs的探索浅析
Nov 05 Javascript
JS Canvas接口和动画效果大全
Apr 29 Javascript
详细AngularJs4的图片剪裁组件的实例
Jul 12 #Javascript
JS中使用gulp实现压缩文件及浏览器热加载功能
Jul 12 #Javascript
Vue中的数据监听和数据交互案例解析
Jul 12 #Javascript
js 监控iframe URL的变化实例代码
Jul 12 #Javascript
jQuery 循环遍历改变a标签的href(实例讲解)
Jul 12 #jQuery
浅谈原生JS中的延迟脚本和异步脚本
Jul 12 #Javascript
基于zepto.js实现手机相册功能
Jul 11 #Javascript
You might like
咖啡知识 除了喝咖啡还有那些知识点
2021/03/06 新手入门
提升PHP执行速度全攻略(上)
2006/10/09 PHP
PHP的时间戳与具体时间转化的简单实现
2016/06/13 PHP
PHP生成zip压缩包的常用方法示例
2019/08/22 PHP
js 刷新页面的代码小结 推荐
2010/04/02 Javascript
JS获取鼠标坐标的实例方法
2013/07/18 Javascript
jQuery获得IE版本不准确webbrowser的解决方法
2014/02/23 Javascript
JavaScript中双叹号!!作用示例介绍
2014/09/21 Javascript
Node.js 制作实时多人游戏框架
2015/01/08 Javascript
iPhone手机上搭建nodejs服务器步骤方法
2015/07/06 NodeJs
jQuery实现信息提示框(带有圆角框与动画)效果
2015/08/07 Javascript
Laydate时间组件在火狐浏览器下有多时间输入框时只能给第一个输入框赋值的解决方法
2016/08/18 Javascript
nodejs 终端打印进度条实例代码
2017/04/22 NodeJs
详解基于node的前端项目编译时内存溢出问题
2017/08/01 Javascript
微信小程序页面滑动屏幕加载数据效果
2020/11/16 Javascript
简述Angular 5 快速入门
2017/11/04 Javascript
vuex的使用及持久化state的方式详解
2018/01/23 Javascript
vue 中swiper的使用教程
2018/05/22 Javascript
JavaScript 2018 中即将迎来的新功能
2018/09/21 Javascript
详解javascript 变量提升(Hoisting)
2019/03/12 Javascript
[02:57]DOTA2亚洲邀请赛 SECRET战队出场宣传片
2015/02/07 DOTA
[52:37]完美世界DOTA2联赛循环赛 Forest vs DM BO2第一场 10.29
2020/10/29 DOTA
python仿evething的文件搜索器实例代码
2019/05/13 Python
详解基于python-django框架的支付宝支付案例
2019/09/23 Python
Python 获取项目根路径的代码
2019/09/27 Python
解决python 读取 log日志的编码问题
2019/12/24 Python
Python numpy多维数组实现原理详解
2020/03/10 Python
举例详解CSS3中的Transition
2015/07/15 HTML / CSS
html5 移动端视频video的android兼容(去除播放控件、全屏)
2020/03/26 HTML / CSS
匡威西班牙官网:Converse西班牙
2019/10/01 全球购物
山海经纬软件测试笔试题和面试题
2013/04/02 面试题
秋季运动会表扬稿
2014/01/16 职场文书
适用于所有创业者的创业计划书
2014/02/05 职场文书
小学安全教育主题班会
2015/08/12 职场文书
导游词之无锡丝业博物馆
2019/11/12 职场文书
go语言基础 seek光标位置os包的使用
2021/05/09 Golang