javascript - Onclick 功能仅显示一秒钟的内容
问题描述
我的 HTML 是这样的
<figure>
<a 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" alt="Confirm" class="confirm">
<img src="Iconos/cancel.png" alt="Cancel" class="cancel">
</div>
</a>
<figcaption>Bathroom</figcaption>
</figure>
当用户单击垃圾图标时,“图标”类对象和“垃圾图标”对象应该消失,然后应该出现一个方形“框”。似乎有些问题,因为该框只出现一秒钟,然后上面提到的图标再次出现。
这里是 JS
function display_box(event, trash){
var icon = trash.closest('div').querySelector('.icon');
icon.style.display= "none";
trash.visibility = "hidden";
var box = trash.closest('a').querySelector('.box');
box.style.display= "block";
}
解决方案
这是我的答案。我添加了 preventDefault 来取消<a>
事件并稍微调整了代码。
function display_box(event, trash){
event.preventDefault();
var icon = trash.closest('div').querySelector('.icon');
icon.style.display= "none";
trash.style.display= "none";
var box = trash.closest('a').querySelector('.box');
box.style.display= "block";
}
推荐阅读
- amazon-web-services - awssdk,maven - 要使用哪个 groupId 和 artifactId 名称(aws,core)?
- c# - 为什么 Expander 展开时 ExpanderHeader 有阴影?
- django - 在 django 中编码和解码 base64 图像
- reactjs - 来自模型的渲染日期反应
- c++ - 通过 vcpkg 安装 POCO C++ 失败
- postgresql - Heroku Postgres - 构建成功并发布完成但部署失败
- java - 如何在单车道桥问题上实现 FCFS 算法?
- python - Numpy matmul over object 数据类型说明
- r - 如何提取R中回归曲线的值?
- reactjs - 为什么渲染父组件和子组件试图进入子组件