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 相关文章推荐
apycom出品的jQuery精美菜单破解方法
Feb 18 Javascript
JavaScript高级程序设计(第3版)学习笔记4 js运算符和操作符
Oct 11 Javascript
防止浏览器记住用户名及密码的简单实用方法
Apr 22 Javascript
Bootstrap每天必学之附加导航(Affix)插件
Apr 25 Javascript
全面了解javascript中的错误处理机制
Jul 18 Javascript
JavaScript中的toString()和toLocaleString()方法的区别
Feb 15 Javascript
加载 vue 远程代码的组件实例详解
Nov 20 Javascript
vue中简单弹框dialog的实现方法
Feb 26 Javascript
记一次webpack3升级webpack4的踩坑经历
Jun 12 Javascript
使用vue-cli webpack 快速搭建项目的代码
Nov 21 Javascript
ES6中let、const的区别及变量的解构赋值操作方法实例分析
Oct 15 Javascript
js观察者模式的弹幕案例
Nov 23 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通用检测函数集合
2011/02/08 PHP
PHP5.3安装Zend Guard Loader图文教程
2014/09/29 PHP
php 替换文章中的图片路径,下载图片到本地服务器的方法
2018/02/06 PHP
javascript 异常处理使用总结
2009/06/21 Javascript
jQuery最佳实践完整篇
2011/08/20 Javascript
js算法中的排序、数组去重详细概述
2013/10/14 Javascript
Jquery中的层次选择器与find()的区别示例介绍
2014/02/20 Javascript
用JS在浏览器中创建下载文件
2014/03/05 Javascript
js实现完全自定义可带多级目录的网页鼠标右键菜单方法
2015/02/28 Javascript
jQuery树控件zTree使用方法详解(一)
2017/02/28 Javascript
JS实现双击内容变为可编辑状态
2017/03/03 Javascript
BootStrap表单时间选择器详解
2017/05/09 Javascript
nodeJS实现路由功能实例代码
2017/06/08 NodeJs
webpack将js打包后的map文件详解
2018/02/22 Javascript
使用javascript做在线算法编程
2018/05/25 Javascript
vue+iview/elementUi实现城市多选
2019/03/28 Javascript
vue解决使用$http获取数据时报错的问题
2019/10/30 Javascript
浅谈实现在线预览PDF的几种解决办法
2020/08/10 Javascript
vue组件讲解(is属性的用法)模板标签替换操作
2020/09/04 Javascript
Python Socket编程入门教程
2014/07/11 Python
Python实现Linux下守护进程的编写方法
2014/08/22 Python
使用Python中的线程进行网络编程的入门教程
2015/04/15 Python
Python基于Tkinter的HelloWorld入门实例
2015/06/17 Python
python类的继承实例详解
2017/03/30 Python
python opencv判断图像是否为空的实例
2019/01/26 Python
python批量修改文件夹及其子文件夹下的文件内容
2019/03/15 Python
python中的&amp;&amp;及||的实现示例
2019/08/07 Python
Python IDLE或shell中切换路径的操作
2020/03/09 Python
python--shutil移动文件到另一个路径的操作
2020/07/13 Python
Win10下配置tensorflow-gpu的详细教程(无VS2015/2017)
2020/07/14 Python
浅析两列自适应布局的3种思路
2016/05/03 HTML / CSS
水上运动奥特莱斯:Wasterports Outlet
2018/08/08 全球购物
The North Face北面美国官网:美国著名户外品牌
2018/09/15 全球购物
电子商务个人职业生涯规划范文
2014/02/12 职场文书
法律意见书范本
2015/06/04 职场文书
python处理json数据文件
2022/04/11 Python