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 相关文章推荐
Extjs 几个方法的讨论
Jan 28 Javascript
在chrome中window.onload事件的一些问题
Mar 01 Javascript
jQuery simpleModal插件的使用介绍
Aug 30 Javascript
微信小程序 省市区选择器实例详解(附源码下载)
Jan 05 Javascript
js实现适配不同的屏幕大小
Apr 10 Javascript
Vue仿今日头条实例详解
Feb 06 Javascript
vue父组件点击触发子组件事件的实例讲解
Feb 08 Javascript
angularjs1.X 重构controller 的方法小结
Aug 15 Javascript
JS使用H5实现图片预览功能
Sep 30 Javascript
bootstrap实现嵌套模态框的实例代码
Jan 10 Javascript
vue+elementUI 实现内容区域高度自适应的示例
Sep 26 Javascript
Vant picker 多级联动操作
Nov 02 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新手上路(十)
2006/10/09 PHP
PHP在字符串中查找指定字符串并删除的代码
2008/10/02 PHP
php实现多维数组排序的方法示例
2017/03/23 PHP
php实现保存周期为1天的购物车类
2017/07/07 PHP
php实现的redis缓存类定义与使用方法示例
2017/08/09 PHP
PHP-X系列教程之内置函数的使用示例
2017/10/16 PHP
jQuery结合Json提交数据到Webservice,并接收从Webservice返回的Json数据
2011/02/18 Javascript
Jquery实现简单的动画效果代码
2012/03/18 Javascript
JQuery验证工具类搜集整理
2013/01/16 Javascript
js输入框邮箱自动提示功能代码实现
2013/12/10 Javascript
Javascript高级技巧分享
2014/02/25 Javascript
原生JS和JQuery动态添加、删除表格行的方法
2015/05/28 Javascript
JS实现隐藏同级元素后只显示JS文件内容的方法
2016/09/04 Javascript
vue子组件使用自定义事件向父组件传递数据
2017/05/27 Javascript
Vue.js中轻松解决v-for执行出错的三个方案
2017/06/09 Javascript
用React-Native+Mobx做一个迷你水果商城APP(附源码)
2017/12/25 Javascript
jQuery实现的滑块滑动导航效果示例
2018/06/04 jQuery
微信小程序中使用ECharts 异步加载数据的方法
2018/06/27 Javascript
通过JS深度判断两个对象字段相同
2019/06/14 Javascript
关于ES6尾调用优化的使用
2020/09/11 Javascript
[01:57]2018年度DOTA2最具潜力解说-完美盛典
2018/12/16 DOTA
Python的多态性实例分析
2015/07/07 Python
python监控文件或目录变化
2016/06/07 Python
Python中的id()函数指的什么
2017/10/17 Python
Django中的cookie和session
2019/08/27 Python
Django xadmin开启搜索功能的实现
2019/11/15 Python
基于CSS3的CSS 多栏(Multi-column)实现瀑布流源码分享
2014/06/11 HTML / CSS
Java基础知识面试题
2014/03/25 面试题
劳资员岗位职责
2013/11/11 职场文书
道德演讲稿
2014/05/21 职场文书
药剂专业毕业生求职信
2014/06/24 职场文书
国庆65周年演讲稿:回首往昔,展望未来
2014/09/21 职场文书
我们的节日元宵节活动总结
2015/02/06 职场文书
小学六一儿童节活动开幕词
2016/03/04 职场文书
你真的了解redis为什么要提供pipeline功能
2021/06/22 Redis
golang实现浏览器导出excel文件功能
2022/03/25 Golang