兼容性IE10中使用vue.js出现event或event.target未定义问题。

Posted Nozer

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了兼容性IE10中使用vue.js出现event或event.target未定义问题。相关的知识,希望对你有一定的参考价值。

问题描述

  • html界面用 v-bind:xx 的方式去绑定一个事件函数时IE10 控制台报错 “valid未定义
  • 问题代码示例:
<input type="text" v-bind:click="valid"/>
<!-- JS 部分-->
<script>
var app = new Vue({
el:"省略",
data:{},
methods:{
    valid:function(event){
        console.log(event.target.tagName);
    }
}
});
</script>
  • 解决过程1:
    我将html中的v-bind:click="valid"改为了v-bind:click="valid();"。然后控制台出现了新的错误,但是至少确信了 在IE中不支持函数省略括号的写法。
    新的错误是 event.target未定义,于是进入下步解决过程。
  • 解决过程2:
    将html中的v-bind:click="valid();"改为了v-bind:click="valid($event);"。在事件被触发后会向 valid(event) 函数传递vue中定义的 $event 实例对象,问题得以解决。

修改之后的代码

<input type="text" v-bind:click="valid($event);"/>
<!-- JS 部分-->
<script>
var app = new Vue({
el:"省略",
data:{},
methods:{
    valid:function(event){
        console.log(event.target.tagName);
    }
}
});
</script>



以上是关于兼容性IE10中使用vue.js出现event或event.target未定义问题。的主要内容,如果未能解决你的问题,请参考以下文章

vue浏览器兼容性问题ie9 ie10 edge

Vue+webpack+Element 兼容问题总结

js 阻止元素发生默认的行为ie兼容

ie兼容问题

js中兼容问题的解决

JavaScript常见火狐FirefoxIE浏览器兼容问题