美文网首页前端vue
vue动态生成html事件失效

vue动态生成html事件失效

作者: Jabo | 来源:发表于2020-03-18 11:29 被阅读0次

背景

   项目开发中有这样一个需求,地图(高德)标记点点击需要展示标点信息框,标点信息框中有个点击详情的按钮,按钮实现弹出框展示更具体详情。


效果图

问题

  这里使用地图提供的 infoWindow来实现标点信息框【js拼接html】,但是点击详情按钮无法直接调用vue里面的方法

原因

  动态拼接生成的HTML代码没有被我党的洗礼(Vue渲染),所以给详情按钮添加@click事件是没法被执行的。

思路

   1、能不能把渲染后的页面强制洗礼一下(似乎不错),使用this.forceUpdate(),强制洗礼了,but木有效果。this.forceUpdate是更新数据做页面渲染驱动,这里数据压根没变哈 \color{red}{【无效】}

   2、挂载全局调用, methods中定义一个方法挂载到全局,在button中用原生的js onClick事件调用,这个方法是可行的,但是不完美,动不动就全局有点慌哈。 \color{red}{【不推荐】}

   3、事件代理,在包裹动态生成的HTMl代码上(原Vue上的HTML代码)定义一个@click事件,这个事件实现的功能很简单就是代理 button 事件,button 上设置一下想附带的数据 eg: data-item='xxx'。 \color{red}{【完美】}

/**
         * @param {Object} e
         * 响应详情事件
         */
        handleClick(e) {
            if (e.target.nodeName.toLowerCase() === 'button') {
                console.log(e.target.dataset.item)
            }
        },

总结

   方式很多重点是动动心思哈【还有一些其他思路,有兴趣的可以留言一起探讨】

相关文章

  • vue动态生成html事件失效

    背景    项目开发中有这样一个需求,地图(高德)标记点点击需要展示标点信息框,标点信息框中有个点击详情的按钮,按...

  • js动态生成html重复绑定事件失效

    在js里面,click事件是存在重复绑定的情况的比如说,一个函数会执行多次,你每次都把绑定了click事件,那么他...

  • js绑定事件到动态生成的html

    正常情况下绑定点击事件可能是这样的: 现在有一段动态生成的html,需要绑定事件 用上面的方法就失效了,因为绑定事...

  • 动态生成dom事件失效

    问题来由 最近在项目中有涉及到排序后回写按钮元素,按钮的事件失效。这可以分为一类问题:重写元素/动态生成元素后,事...

  • Jquery动态生成html

    Jquery动态生成html:

  • layui2.0.2数据表格工具条失效

    使用方法级渲染动态表格时,无法设置生成的table的lay-filter属性,所以导致工具条监听事件失效table...

  • jQuery 动态绑定

    这是在项目过程中所遇到的一个问题,给 JS 动态生成的元素绑定事件失效,代码如下所示: 其中,more-btn 按...

  • Vue SPA 首屏优化实战

    前言 常规 vue 项目打包后访问,返回一个只包含 div 的 html,其他内容块都是通过 js 动态生成的。 ...

  • Vue中的事件与原生中的事件

    Vue中的事件与原生中的事件 原生 当用户的某个行为触发html元素的某个事件时,对应该事件的构造函数便会生成一个...

  • vue加载高德地图,并自定义infoWindow事件

    1. 加载高德地图 公共方法 具体加载方法 2.自定义infoWindow事件 使用Vue.extend()生成html

网友评论

    本文标题:vue动态生成html事件失效

    本文链接:https://www.haomeiwen.com/subject/wjlqyhtx.html