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 相关文章推荐
js 异步操作回调函数如何控制执行顺序
Dec 24 Javascript
jQuery产品间断向下滚动效果核心代码
May 08 Javascript
node.js中的buffer.copy方法使用说明
Dec 14 Javascript
jquery使用remove()方法删除指定class子元素
Mar 26 Javascript
Javascript 5种方法实现过滤删除前后所有空格
Jun 22 Javascript
javascript中使用未定义变量或值的情况分析
Jul 19 Javascript
微信小程序 canvas API详解及实例代码
Oct 08 Javascript
View.post() 不靠谱的地方你知道多少
Aug 29 Javascript
微信小程序select下拉框实现效果
May 15 Javascript
vue中$refs, $emit, $on, $once, $off的使用详解
May 26 Javascript
JavaScript对象访问器Getter及Setter原理解析
Dec 08 Javascript
vue实现倒计时功能
Mar 24 Vue.js
详细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
discuz Passport 通行证 整合笔记
2008/06/30 PHP
php 仿Comsenz安装效果代码打包提供下载
2010/05/09 PHP
PHP面向对象程序设计之接口的继承定义与用法详解
2018/12/20 PHP
求得div 下 img的src地址的js代码
2007/02/28 Javascript
js 完美图片新闻轮转效果,腾讯大粤网首页图片轮转改造而来
2011/11/21 Javascript
基于jquery的滚动条滚动固定div(附演示下载)
2012/10/29 Javascript
实现web打印的各种方法介绍及实现代码
2013/01/09 Javascript
在JavaScript中使用开平方根的sqrt()方法
2015/06/15 Javascript
JS组件Bootstrap Table表格行拖拽效果实现代码
2020/08/27 Javascript
js获取Get值的方法
2016/09/29 Javascript
Js动态设置rem来实现移动端字体的自适应代码
2016/10/14 Javascript
jQuery EasyUI结合zTree树形结构制作web页面
2017/09/01 jQuery
js实现一个简单的MVVM框架示例
2018/01/15 Javascript
jQuery使用each遍历循环的方法
2018/09/19 jQuery
JavaScript中window和document用法详解
2020/07/28 Javascript
django批量导入xml数据
2016/10/16 Python
python查看列的唯一值方法
2018/07/17 Python
pywinauto自动化操作记事本
2019/08/26 Python
在OpenCV里使用特征匹配和单映射变换的代码详解
2019/10/23 Python
Python手绘可视化工具cutecharts使用实例
2019/12/05 Python
Pytorch使用MNIST数据集实现CGAN和生成指定的数字方式
2020/01/10 Python
keras 自定义loss损失函数,sample在loss上的加权和metric详解
2020/05/23 Python
python名片管理系统开发
2020/06/18 Python
Shopbop中文官网:美国亚马逊旗下时尚购物网站
2020/12/15 全球购物
Java面试中常遇到的问题,也是需要注意的几点
2013/08/30 面试题
行政助理岗位职责
2013/11/10 职场文书
财务会计专业个人求职信范本
2014/01/08 职场文书
小学新学期教师寄语
2014/01/18 职场文书
2014年大学生自我评价
2014/01/19 职场文书
工作期间打牌检讨书范文
2014/11/20 职场文书
服务承诺书
2015/01/19 职场文书
2015年公务员转正工作总结
2015/04/24 职场文书
普通员工辞职信范文
2015/05/12 职场文书
导游词之广西漓江
2019/11/02 职场文书
Python实现老照片修复之上色小技巧
2021/10/16 Python
《游戏王:大师决斗》新活动上线 若无符合卡组可免费租用
2022/04/13 其他游戏