javascript - 防止弹出窗口冒泡
问题描述
我不确定如何防止 js 弹出窗口冒泡。我制作了一个带有 onClick 事件的标签按钮,该按钮导致删除图像的删除功能。当我单击按钮时,弹出窗口关闭得非常快,删除功能通常不会执行到最后。
let image_popup = document.querySelector('.image-popup');
document.querySelectorAll('.images a').forEach(img_link => {
img_link.onclick = e => {
e.preventDefault();
let img_meta = img_link.querySelector('img');
let img = new Image();
img.onload = () => {
image_popup.innerHTML = `
<div class="con responsive3">
<h3>${img_meta.dataset.title}</h3>
<p>${img_meta.alt} autor: ${img_meta.dataset.alt2}</p>
<img src="${img.src}" class="responsive2" width="${img.width}" height="${img.height}">
<a href="" onClick="brisanje_slike(${img_meta.dataset.id})" class="trash" title="Obriši sliku"><i class="fa fa-trash fa-xs"></i></a>
</div>
`;
image_popup.style.display = 'flex';
};
img.src = img_meta.src;
};
});
解决方案
尝试stopPropagation()
:
let image_popup = document.querySelector('.image-popup');
document.querySelectorAll('.images a').forEach(img_link => {
img_link.onclick = e => {
e.preventDefault();
e.stopPropagation();
let img_meta = img_link.querySelector('img');
let img = new Image();
img.onload = () => {
image_popup.innerHTML = `
<div class="con responsive3">
<h3>${img_meta.dataset.title}</h3>
<p>${img_meta.alt} autor: ${img_meta.dataset.alt2}</p>
<img src="${img.src}" class="responsive2" width="${img.width}" height="${img.height}">
<a href="" onClick="brisanje_slike(${img_meta.dataset.id})" class="trash" title="Obriši sliku"><i class="fa fa-trash fa-xs"></i></a>
</div>
`;
image_popup.style.display = 'flex';
};
img.src = img_meta.src;
};
});
推荐阅读
- google-sheets - 如果单元格有日期信息,则计数单元格
- java - LDAP Spring 安全认证错误:代码 32 - 0000208D:NameErr:DSID-0310021B,问题 2001(NO_OBJECT),数据 0,最佳匹配
- django - 异常值:libFreeCADApp.so:无法打开共享对象文件:没有这样的文件或目录
- vba - 条件格式可防止连续表单上的组合框下拉
- javascript - 我的 Wix 站点中的订阅处理可能存在安全问题?
- android - 如何从文档扫描仪应用程序捕获图像并在 android 的 imageview 中显示?
- angular - 循环嵌套表单组,如果有模式错误,则将每个表单控件值更改为 null
- lxml - 从 for 循环内部将多个元素插入 xml 时的字符串插值
- android - 在 Kotlin TextWatcher 中将 2 个数字相乘而没有按钮
- c++ - 如何理解“明显恒定评估”的定义?