为什么第一种方式可以出来,第二种写法时click无效啊

来源:2-12 自由编程

qq_逃大狗_0

2019-07-03 20:15:18

第一种
<template>
    <div>
      <div v-html="mgs" @click="cik"></div>
    </div>
</template>

<script>
export default {
  data () {
    return {
      mgs: "<div>点击我</div>"
    }
  },
  methods: {
    cik () {
      alert('我出来了')
    }
  }
}
</script>

第二种
<template>
    <div>
      <div v-html="mgs"></div>
    </div>
</template>

<script>
export default {
  data () {
    return {
      mgs: '<div  @click="cik">点击我</div>'
    }
  },
  methods: {
    cik () {
      alert('我出来了')
    }
  }
}
</script>


写回答

1回答

好帮手慕星星

2019-07-04

你好,是因为第二种v-html插入内容的方法,浏览器将绑定的事件解析成字符串了:

http://img.mukewang.com/climg/5d1d63130001f10204840166.jpg

所以点击没有效果。

一般不推荐使用v-html将写好的内容插入进去,这样不太灵活。如果一定要这样写还要绑定事件的话可以绑定在父容器上,例如:

http://img.mukewang.com/climg/5d1d637900011fb605600485.jpg

自己测试下,祝学习愉快!

0

0 学习 · 10739 问题

查看课程