[英]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.