当前位置: 首页 > 知识库问答 >
问题:

vue.js - el-dropdown @command 事件触发两次的原因是什么?

羊舌高峰
2024-03-28

el-dropdown添加command事件,执行了两次,这是为什么?

<el-dropdown trigger="hover" class="user_icon pointer" @command="handleCommand">    <el-dropdown-menu class="operator-dropdown"  slot="dropdown">         <ul class="operator-item" v-for="(item, index) in operatorList" :key="index">            <li v-for="(operatItem, idx) in item" :key="idx">                <el-dropdown-item :command="operatItem.command">                    <el-dropdown-item :command="operatItem.command">                            <i :class="operatItem.icon"></i>                            {{operatItem.name}}                    </el-dropdown-item>                </el-dropdown-item>            </li>        </ul>    </el-dropdown-menu></el-dropdown>operatorList: any[] = [            [                { name: '修改密码', command: 'editPass', icon: 'el-icon-edit-outline' },                { name: '后台管理', command: 'setting', icon: 'el-icon-setting' }            ]        ]handleCommand(command) {// 执行了两次}

查了别人的类似的两次触发问题,查文档证实,command为官方提供方法,不存在.native与二次同时被处罚的情况存在。

共有1个答案

耿招
2024-03-28

因为你的 el-dropdown-item 里面嵌套了 el-dropdown-item,所以会触发两次,一次是父级的,一次是子级的。所以把外面的 el-dropdown-item 去掉自己写一个 flex 布局的 div 元素就好了。

�� 这里是问题复现Demo

 类似资料:
  • 问题内容: 我有以下代码,但我的问题是该事件被触发了两次。我不知道是什么原因造成的。我怀疑是由供应商前缀引起的,但并非如此。即使我只离开,它仍然会开火两次。 CSS JS 问题答案: 对于您和,每个已转换的属性都会触发。 您可以在访问与事件关联的属性。 没有“ transition s end”事件,因此您可能需要一些技巧,例如仅过滤其中一个过渡属性的回调处理。例如: ps。没有浏览器会触发该事件

  • 用的是vue-element-admin架子. 点击一个菜单连接后打开一个列表(A.create), 点击列表中的一个项(B.create)打开B页面. 再关闭B页面, 此时再回到A, 此时又执行了A页面的create方法 开发时以上操作不会触发A页面的create, 现在莫名的都create了

  • 我部署了一个用Python2编写的服务。7使用AWS Lambda,它是关于从一些页面提取数据并将结果发送到web应用程序。该服务由AWS CloudWatch事件触发(固定速率为5分钟)。 但是,我发现有时服务会一次触发两次。我得到这个是因为有两个日志流打印了相同的数据和结果,但具有不同的Request estID。并且数据库有重复的数据,这表明两者都成功工作。看起来服务几乎无缘无故地同时触发了

  • 我通过infinispan缓存添加了CacheEntryExpired侦听器的n实现。addListener()方法。 侦听器事件在条目过期时激发。问题是,每次事件触发两次。 我验证(使用调试器和cache.getListeners())缓存不包含我的同一个侦听器的两个实例。getListeners的结果是: 所以只有一个听众。侦听器实现接口: 一个实现看起来像: 但是从接口中删除@CacheEn

  • 问题内容: 使用angular.js给出以下代码 此处的Plunkr:http://plnkr.co/edit/i4MAzs HTML: Javascript: 当您点击“ Value2”标签时,click事件将触发两次。仅当ng-click附加到标签时才会发生这种情况。将其附加到输入元素后,所有内容都会按预期工作。 有人可以解释发生了什么吗? 问题答案: 另外,我还编辑了您的plnkr以显示事件

  • elementui的el-input组件的源码中,suffix插槽绑定了一个点击事件@click="focus",focus事件中没有做其他的处理,只是点击的时候获取input焦点,会触发focus事件。如果当前的input处于已经获取焦点的状态,应该会先触发input的blur事件,再触发focus事件。 但是为什么没有触发blur事件呢?