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 相关文章推荐
让您的菜单不离网站
Oct 03 Javascript
jquery text()要注意啦
Oct 30 Javascript
JS图片浏览组件PhotoLook的公开属性方法介绍和进阶实例代码
Nov 09 Javascript
jquery select 设置默认选中的示例代码
Feb 07 Javascript
JavaScript利用append添加元素报错的解决方法
Jul 01 Javascript
js事件绑定快捷键以ctrl+k为例
Sep 30 Javascript
jQuery根据表单name获取值的方法
May 24 Javascript
JavaScript必知必会(五) eval 的使用
Jun 08 Javascript
详解handlebars+require基本使用方法
Dec 21 Javascript
微信小程序 配置顶部导航条标题颜色的实现方法
Sep 20 Javascript
Vue实现类似Spring官网图片滑动效果方法
Mar 01 Javascript
d3.js实现图形缩放平移
Dec 19 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调用Webservice思路及源码分享
2014/06/04 PHP
PHP中if和or运行效率对比
2014/12/12 PHP
浅谈thinkphp的实例化模型
2015/01/04 PHP
php获取系统变量方法小结
2015/05/29 PHP
php自动给网址加上链接的方法
2015/06/02 PHP
在php7中MongoDB实现模糊查询的方法详解
2017/05/03 PHP
Laravel 5.4.36中session没有保存成功问题的解决
2018/02/19 PHP
Extjs学习笔记之一 初识Extjs之MessageBox
2010/01/07 Javascript
dess中一个简单的多路委托的实现
2010/07/20 Javascript
js限制文本框为整数和货币的函数代码
2010/10/13 Javascript
jquery原理以及学习技巧介绍
2015/11/11 Javascript
jquery实现移动端点击图片查看大图特效
2020/09/11 Javascript
基于BootStrap Metronic开发框架经验小结【二】列表分页处理和插件JSTree的使用
2016/05/12 Javascript
jQuery实现倒计时重新发送短信验证码功能示例
2017/01/12 Javascript
iframe与主框架跨域相互访问实现方法
2017/09/14 Javascript
vue实现一个炫酷的日历组件
2018/10/08 Javascript
three.js实现圆柱体
2018/12/30 Javascript
Vue+Django项目部署详解
2019/05/30 Javascript
Nodejs封装类似express框架的路由实例详解
2020/01/05 NodeJs
文章或博客自动生成章节目录索引(支持三级)的实现代码
2020/05/10 Javascript
Python的Flask框架中配置多个子域名的方法讲解
2016/06/07 Python
python提取照片坐标信息的实例代码
2019/08/14 Python
Python3离线安装Requests模块问题
2019/10/13 Python
Django 路由层URLconf的实现
2019/12/30 Python
在Windows上安装和配置 Jupyter Lab 作为桌面级应用程序教程
2020/04/22 Python
python和go语言的区别是什么
2020/07/20 Python
VC++笔试题
2014/10/13 面试题
应届生法律求职信
2013/10/22 职场文书
拓展培训心得体会
2014/01/04 职场文书
交通安全教育制度
2014/02/02 职场文书
人事任命书怎么写
2014/06/05 职场文书
女性健康讲座主持词
2015/07/04 职场文书
小学生必读成语故事大全:送给暑假的你们
2019/07/09 职场文书
人事部:年度述职报告范文
2019/07/12 职场文书
基于Redis延迟队列的实现代码
2021/05/13 Redis
Vue+TypeScript中处理computed方式
2022/04/02 Vue.js