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 相关文章推荐
Jquery 快速构建可拖曳的购物车DragDrop
Nov 30 Javascript
js获取本机的外网/广域网ip地址完整源码
Aug 12 Javascript
jQuery的3种请求方式$.post,$.get,$.getJSON
Mar 28 Javascript
JS实现灵巧的下拉导航效果代码
Aug 25 Javascript
js 获取站点应用名的简单实例
Aug 18 Javascript
详解jQuery插件开发方式
Nov 22 Javascript
jQuery弹出层插件popShow用法示例
Jan 23 Javascript
解析jquery easyui tree异步加载子节点问题
Mar 08 Javascript
jQuery插件HighCharts实现的2D回归直线散点效果示例【附demo源码下载】
Mar 09 Javascript
js中let和var定义变量的区别
Feb 08 Javascript
在pycharm中开发vue的方法步骤
Mar 04 Javascript
js实现九宫格布局效果
May 28 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
一个ubbcode的函数,速度很快.
2006/10/09 PHP
Ext 表单布局实例代码
2009/04/30 Javascript
JavaScript 精粹读书笔记(1,2)
2010/02/07 Javascript
Javascript 判断客户端浏览器类型代码
2010/03/01 Javascript
jQuery 名称冲突的解决方法
2011/04/08 Javascript
JavaScript判断访问的来源是手机还是电脑,用的哪种浏览器
2013/12/12 Javascript
javascript jquery对form元素的常见操作详解
2016/06/12 Javascript
AngularJS控制器详解及示例代码
2016/08/16 Javascript
基于jQuery实现的幻灯图片切换
2016/12/02 Javascript
Vue.js开发环境快速搭建教程
2017/03/17 Javascript
利用Ionic2 + angular4实现一个地区选择组件
2017/07/27 Javascript
vuex的使用及持久化state的方式详解
2018/01/23 Javascript
vue如何解决循环引用组件报错的问题
2018/09/22 Javascript
vue下拉菜单组件(含搜索)的实现代码
2018/11/25 Javascript
vue项目打包后提交到git上为什么没有dist这个文件的解决方法
2020/09/16 Javascript
vue下载二进制流图片操作
2020/10/26 Javascript
python数组复制拷贝的实现方法
2015/06/09 Python
django 多数据库配置教程
2018/05/30 Python
将pip源更换到国内镜像的详细步骤
2019/04/07 Python
Python3.5集合及其常见运算实例详解
2019/05/01 Python
python+opencv实现车牌定位功能(实例代码)
2019/12/24 Python
Python加速程序运行的方法
2020/07/29 Python
python pymysql库的常用操作
2020/10/16 Python
python 窃取摄像头照片的实现示例
2021/01/08 Python
CSS3轻松实现清新 Loading 效果的简单实例
2016/06/06 HTML / CSS
纯CSS实现预加载动画效果
2017/09/06 HTML / CSS
西班牙最好的在线购买葡萄酒的商店:Vinoseleccion
2019/10/30 全球购物
对象的序列化(serialization)类是面向流的,应如何将对象写入到随机存取文件中
2015/06/22 面试题
电子商务专业自我鉴定
2013/12/18 职场文书
2015年双拥工作总结
2015/04/08 职场文书
幼儿园推普周活动总结
2015/05/07 职场文书
2015初一年级组工作总结
2015/07/24 职场文书
python实现图片九宫格分割的示例
2021/04/25 Python
Django如何创作一个简单的最小程序
2021/05/12 Python
Java并发编程之Executor接口的使用
2021/06/21 Java/Android
JavaScript组合继承详解
2021/11/07 Javascript