如何仅通过HTML与Popover API点击内部锚点关闭弹窗?
纯HTML实现Popover内锚点点击关闭弹窗且保留锚点功能
直接用HTML标准属性就能解决问题,不需要额外JS:
- 给弹窗内的
<a>标签加上popovertarget(指定弹窗ID)和popovertargetaction="hide"属性,既会触发弹窗关闭,又不会影响锚点自身的跳转行为。
修改后的代码示例:
<button popovertarget="mypopover">Toggle popover</button> <div id="mypopover" popover> <nav> <a href="#" popovertarget="mypopover" popovertargetaction="hide">Home</a> <a href="#" popovertarget="mypopover" popovertargetaction="hide">About</a> <a href="#" popovertarget="mypopover" popovertargetaction="hide">Contact</a> </nav> </div>
关键说明
popovertarget="mypopover":绑定要操作的弹窗元素popovertargetaction="hide":明确触发隐藏弹窗的动作(而非默认的切换)- 这套方案是纯HTML实现,完全符合Popover API的标准规范,无障碍访问性也有保障,不会出现JS方法的相关问题。
你之前尝试的popoverhide是早期实验性属性,现在已经被标准的popovertargetaction替代,这就是之前写法无效的原因。
内容的提问来源于stack exchange,提问作者hjaber
相关产品推荐
相关产品推荐

