小编sha*_*thi的帖子

仅当元素存在时才添加事件监听器

我想将事件监听器添加到 html 元素。但是当元素不存在时它会产生 js 错误。该元素仅存在于某些页面上。

    // (A) ATTACH CLICK LISTENER ON PAGE LOAD
window.addEventListener("load", () => {
  document.getElementById("download_mp3j_0").addEventListener("click", doSomething);
});
// (B) THE USUAL FUNCTION
function doSomething () {
  // (B1) DETACH CLICK LISTENER
  var div = document.getElementById("download_mp3j_0");
  div.removeEventListener("click", doSomething);
  // (B2) EXTRA - CHANGE THE TEXT IF YOU WANT
  div.innerHTML = "Downloading";
  // (B3) DO YOUR PROCESSING HERE
  alert("Downloading!");
  // (B4) RE-ENABLE AFTER PROCESSING IF YOU WANT
  // div.addEventListener("click", doSomething);
}
Run Code Online (Sandbox Code Playgroud)

基本上,该功能是在单击按钮后将其删除,以避免多次重复单击。

我希望函数 doSomething 仅在元素download_mp3j_0存在时运行。

javascript wordpress jquery

1
推荐指数
1
解决办法
1423
查看次数

标签 统计

javascript ×1

jquery ×1

wordpress ×1