You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

onclick函数仅显示内容一秒钟的技术问题求助

解决onclick触发后内容仅显示一秒消失的问题

嘿,这个问题我碰到过!你的确认框一闪就没,核心原因是那个垃圾桶图标被包在了<a>标签里,点击的时候触发了a标签的默认跳转行为——浏览器会尝试跳转到空链接,相当于刷新页面,刚显示的框自然就没啦。下面给你几个靠谱的解决办法:

1. 阻止点击事件的默认跳转行为

最简单的方式是在你的display_box函数里添加一行代码,阻止a标签的默认动作:

function display_box(event, element) {
  event.preventDefault(); // 这行是关键!阻止a标签的跳转
  // 你原本用来显示.box的代码,比如:
  const targetBox = element.closest('.roomandtrash').nextElementSibling;
  targetBox.style.display = 'block';
}

如果不想修改JavaScript代码,也可以直接修改<a>标签的href属性,让它不触发跳转:

<figure>
  <a href="javascript:void(0)"> <!-- 把空href改成这个 -->
    <div onmouseover="trash_display(event,this);" onmouseout="trash_out(event,this);" class="roomandtrash">
      <img src="Iconos/bathroom2.png" alt="Bathroom" class="icon" >
      <img src="Iconos/tacho.png" alt="Trash" class="trash_icon" onclick="display_box(event,this);">
    </div>
    <div class="box">
      <h4 class="Messagebox">You are about to delete this room and all its devices. </h4>
      <img src="Iconos/confirm.png"...
    </div>
  </a>
</figure>

2. 排查冲突的鼠标事件

另外可以检查一下你的trash_out函数,看看是不是鼠标移出.roomandtrash时,无意中把.box也隐藏了?比如函数里如果有类似element.nextElementSibling.style.display = 'none'的代码,可能会在点击图标后,鼠标不小心移出区域时触发隐藏,这时候需要调整逻辑,确保只有在未触发删除确认时才执行隐藏。

3. 确认.box的初始状态

最后别忘了确认你的CSS里,.box默认是隐藏的,这样点击后显示的逻辑才生效:

.box {
  display: none;
  /* 其他样式 */
}

内容的提问来源于stack exchange,提问作者Flama

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:33:52