实现点击带有搜索历史的搜索框内部时不收起搜索历史记录,点击外部收起历史记录

项目场景:

项目场景:
实现带有搜索历史的搜索框时,想要实现点击出现搜索历史,且点击内部不收起历史记录,点击外部才收起的效果


解决方案:

body 上绑定点击事件,并获取搜索组件的 DOM,当触发点击事件时,判断点击的元素e.target是否是 搜索组件 DOM 的子节点,是就不隐藏搜索历史,不是就隐藏

MDN Node.contains

<Search ref="searchComponent"/>
const searchComponent = ref();

document.body.addEventListener("click", (e) => {
  console.log("e", e.target);
  // Search 组件里用了 isSearchInputFocused 来控制搜索历史显示
  searchComponent.value.isSearchInputFocused =
    searchComponent.value.searchNode.contains(e.target);
});
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值