JavaScript

超轻量级php框架startmvc

VUE解决 v-html不能触发点击事件的问题

更新时间:2020-09-19 14:54:01 作者:startmvc
背景:后端返前端html格式的数据,前端用v-html解析渲染,如:<a@click="show(1)"></a>,

背景:后端返前端html格式的数据,前端用v-html解析渲染,如:<a @click="show(1)"></a>,a标签能成功渲染,但其绑定的事件无法触发。

原因:vue没有将其作为vue的模板解析渲染

解决方案:不用v-html而是component模板编译

上干货:


<template>
 <div class="hello">
 <h1>
 我是父组件
 </h1>
 <div class="parent" id="parent">
 </div>
 </div>
</template>

<script>
 import Vue from 'vue';
 var MyComponent = Vue.extend({
 template: '<a @click="show(1)">我是大魔王</a>',
 methods: { 
 show(i) {
 console.log(i);
 },
 }
 });
 var component = new MyComponent().$mount();
 export default {
 data() {
 return {
 }
 },
 methods: {
 },
 mounted() {
 document.getElementById('parent').appendChild(component.$el);
 }
 }
</script>

<style scoped>
</style>

页面:

控制台:

以上这篇VUE解决 v-html不能触发点击事件的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

VUE v-html 触发 点击事件