[英]How to temporarily disable a href click after a click eventListener is applied
我正在开发一个 javascript 工具,该工具将 click eventListener 应用于用于打开工具提示的跨度。 只有当某些切换设置为true
时,此点击才会真正起作用。 如果切换设置为false
,则单击不会执行任何操作。 但是,当切换打开并且跨度已经是<a>
标签的一部分时,跨度基本上有 2 个点击行为。 当切换设置为true
时,如何暂时禁用链接点击?
以下是我目前拥有的。
<a href="#">Some <span class="tooltip">text</span></a>
function createTooltips() {
const spanElements = document.querySelectorAll(".tooltip");
spanElements.forEach((spanElement) => {
spanElement.addEventListener("click", openToolTip);
}
function openToolTip() {
if (toggledOn == true) {
...open the tooltip...
} else {
return
}
}
function setToggle() {
...
}
我在这里找到了一些完全删除点击的解决方案。 我还尝试应用pointer-events: none;
样式到跨度,但这将禁用我自己应用的单击事件监听器。
在检查切换标志的锚点上添加事件侦听器。 如果工具提示已打开,请使用Event.preventDefault()
来防止单击链接。
function createTooltips() { const spanElements = document.querySelectorAll(".tooltip"); spanElements.forEach((spanElement) => { spanElement.addEventListener("click", openToolTip); spanElement.parentElement.addEventListener("click", checkToggle); } } } function openToolTip() { if (toggledOn) { //...open the tooltip... } } function checkToggle(e) { if (toggledOn) { e.preventDefault(); } }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.