即使监听器点击触摸屏,js 也出现问题

问题描述 投票:0回答:1

我是 JavaScript 新手,我在使用以下代码时遇到问题。正如您所看到的,我试图在用户单击按钮时执行一个功能,并且应该复制电子邮件。该代码在笔记本电脑设备上运行良好,但在触摸屏上则无法运行。如果有人对如何解决此问题有任何想法,请回复。谢谢!

let copy = document.querySelector(".copy");

const copied = () =>{
  setTimeout(()=>{
    copy.innerHTML = "<i class='bx bx-copy'></i> Copy email";
    copy.classList.remove("copied");
  }, "1500");
}

const copyfnc = () =>{
  navigator.clipboard.writeText("[email protected]");
  copy.classList.add("copied")
  copy.innerHTML = "<i class='bx bx-check' ></i> email copied"
  copied();
}


copy.addEventListener("click", () =>{
  copyfnc();
})
copy.addEventListener("touchstart", () =>{
  copyfnc();
})

expexting 有人可以修复它或给我一些建议

javascript web-frontend
1个回答
0
投票

您可以使用

touchend
代替
touchstart
,而且最好阻止触摸事件的默认行为,以确保其按预期工作。

copy.addEventListener("touchend", (event) => {
  event.preventDefault(); // Prevent default touch behavior
  copyfnc();
});
© www.soinside.com 2019 - 2024. All rights reserved.