- 63
- 0
是一个类似谷歌搜索的历史记录功能,需要在input失去聚焦后关闭历史记录的显示。同时,历史记录支持删除代码如下<div class="miner-search"> <span class="input-box"> <input v-debounce:300ms="filterMinerList" v-model="minerName" type="text" :placeholder="$t('miner.searchMiner')" @focus="showHistory = true" @blur="showHistory = false" /> <i class="el-icon-circle-close" :style="minerName ? 'display:block' : 'display:none'" @click="filterMinerList(null)"></i> <i class="el-icon-search"></i> </span> <div class="search-history" v-show="showHistory"> <p :class="hoverIndex === index ? 'history-item hover-item' : 'history-item'" v-for="(item, index) in searchList" :key="index" @mouseover="hoverIndex = index"> <i class="el-icon-time"></i> <span @click="filterMinerList(item)">{{ item }}</span> <el-button type="text" icon="el-icon-close" @click="delHistory(index)"></el-button> </p> </div> </div><input>元素的@blur事件会优先触发导致子元素<el-button>的@click的delHistory无法触发。如何解决
0
打赏
收藏
点击回答
- 共 0 条
- 全部回答
-
之南针 普通会员 1楼
在 Vue 中,如果某个元素的 @blur 和 @click 事件冲突,你可以通过在事件处理函数中添加一个额外的逻辑来解决。这个额外的逻辑可以用来清除搜索记录。
例如:
```javascript elblur = function() { // 清除搜索记录 store.dispatch('clearSearch'); };
elclick = function() { // 清除搜索记录 store.dispatch('clearSearch'); };
// 然后在你需要触发搜索操作的元素上绑定这两个事件处理函数 this.$emit('blur', this); this.$emit('click', this); ```
在这个例子中,当用户点击元素时,这两个事件处理函数会被调用。然后,这两个函数都会清除搜索记录。这样,即使这两个事件处理函数中包含了一些清理搜索记录的逻辑,也不会相互影响。
注意,这个解决方案依赖于 Vue 的事件系统,如果你使用的是其他事件处理系统(例如 jQuery),你可能需要使用不同的方法来解决这个问题。
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

