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 相关文章推荐
很可爱的输入框
Aug 03 Javascript
IE与Firefox在JavaScript上的7个不同句法分享
Oct 30 Javascript
Javacript实现颜色梯度变化和渐变的效果代码
May 31 Javascript
js 判断文件类型并控制表单提交示例代码
Nov 14 Javascript
javascript通过元素id和name直接取得元素的方法
Apr 28 Javascript
Bootstrap每天必学之导航条
Nov 27 Javascript
jQuery设置图片等比例缩小的方法
Apr 29 jQuery
强大的 Angular 表单验证功能详细介绍
May 23 Javascript
javascript将url解析为json格式的两种方法
Aug 18 Javascript
JS控制鼠标拒绝点击某一按钮的实例
Dec 29 Javascript
利用node 判断打开的是文件 还是 文件夹的实例
Jun 10 Javascript
详谈vue中router-link和传统a链接的区别
Jul 22 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
收集的php编写大型网站问题集
2007/03/06 PHP
php简单静态页生成过程
2008/03/27 PHP
paypal即时到账php实现代码
2010/11/28 PHP
运用Windows XP附带的Msicuu.exe、Msizap.exe来彻底卸载顽固程序
2007/04/21 Javascript
javascript add event remove event
2008/04/07 Javascript
不同浏览器的怪癖小结
2010/07/11 Javascript
单击按钮显示隐藏子菜单经典案例
2013/01/04 Javascript
使用jquery.qrcode.min.js实现中文转化二维码
2016/03/11 Javascript
BootStrap点击下拉菜单项后显示一个新的输入框实现代码
2016/05/16 Javascript
Bootstrap CDN和本地化环境搭建
2016/10/26 Javascript
Bootstrap列表组学习使用
2017/02/09 Javascript
jQuery使用eraser.js插件实现擦除、刮刮卡效果的方法【附eraser.js下载】
2017/04/28 jQuery
Vue-cli Eslint在vscode里代码自动格式化的方法
2018/02/23 Javascript
jQuery中each和js中forEach的区别分析
2019/02/27 jQuery
面试题:react和vue的区别分析
2019/04/08 Javascript
JavaScript实现多个物体同时运动
2020/03/12 Javascript
Swiper实现导航栏滚动效果
2020/10/16 Javascript
vue element el-transfer增加拖拽功能
2021/01/15 Vue.js
在Python中marshal对象序列化的相关知识
2015/07/01 Python
python入门教程 python入门神图一张
2018/03/05 Python
python合并同类型excel表格的方法
2018/04/01 Python
Python自定义装饰器原理与用法实例分析
2018/07/16 Python
numpy给array增加维度np.newaxis的实例
2018/11/01 Python
Tensorflow实现酸奶销量预测分析
2019/07/19 Python
python将字母转化为数字实例方法
2019/10/04 Python
python快速排序的实现及运行时间比较
2019/11/22 Python
pycharm运行scrapy过程图解
2019/11/22 Python
Python docutils文档编译过程方法解析
2020/06/23 Python
惠普美国官方商店:HP Official Store
2016/08/28 全球购物
匈牙利超级网上商店和优惠:Alza.hu
2019/12/17 全球购物
集团公司总经理岗位职责
2013/12/20 职场文书
上班迟到检讨书范文300字
2014/11/02 职场文书
贷款工作证明模板
2015/06/12 职场文书
2016小学优秀教师先进事迹材料
2016/02/26 职场文书
Python insert() / append() 用法 Leetcode实战演示
2021/03/31 Python
JS中一些高效的魔法运算符总结
2021/05/06 Javascript