带 javascript 的脚注:如何隐藏它点击任何地方

footnote with javascript: how hide it clicking anywhere

我有一个网站,上面有几篇带脚注的论文。
到目前为止,我采用了经典的系统,即在文章底部使用内部 link 引用脚注,然后您可以通过单击注释编号从中 return 进入论文正文。
但我发现 javascript 可以有一个更舒适的系统,将脚注 保留在您正在阅读的屏幕中
代码是这样的:

  function toggleDiv (divId) {
     $ ("#" + divId) .toggle ();
  }
.dynamicnote {display: none;  
   position: fixed;  
   bottom: 2%;  
   margin-left: auto;  
   margin-right: auto;}
<a href = "javascript: toggleDiv ('n1');" id = "1a"> 1 </a>  

<p id = "n1" class="dynamicnote"> <a href="#1a"> 1 </a> [sometext] </p>

问题是,如果我单击锚点(一旦阅读了注释),这将完美运行,然后脚注消失;否则,如果我单击下一个锚点,新脚注会 覆盖 前一个,这很丑陋且令人困惑。 你可以在这个 url

看到这个脚本

如何解决?也许用 javascript 命令来隐藏显示的 div 点击任何地方?

更新的答案:如果情况更糟,请告诉我,我会把旧的放回去。 更新二:这只适用于第二次点击,所以第一次 link 不会有动画(但仍然像第一次一样工作)。我仍在研究第一次点击的解决方案。同样,如果情况更糟,请告诉我。

var currDiv = 'footNote';
function toggleDiv(divId) {
  if(currDiv=='footNote'){
    document.getElementById('footTwo').classList.add('no-height');
    document.getElementById('footTwo').innerHTML='';
    document.getElementById('footNote').classList.remove('no-height');
    var elem = document.getElementById(divId).cloneNode(true);
    elem.id = 'fntext';
    document.getElementById('footNote').appendChild(elem);
    var ftnt= document.getElementById('fntext');
    ftnt.replaceWith(...ftnt.childNodes);
    currDiv=0;
  }else{   
    document.getElementById('footNote').classList.add('no-height');
    document.getElementById('footNote').innerHTML='';
    document.getElementById('footTwo').classList.remove('no-height');
    var elem = document.getElementById(divId).cloneNode(true);
    elem.id = 'fntext';
    document.getElementById('footTwo').appendChild(elem);
    var ftnt= document.getElementById('fntext');
    ftnt.replaceWith(...ftnt.childNodes);
    currDiv = 'footNote';
  }
}

document.addEventListener("click", e => {
  if(e.target.className!=='href'){
    document.getElementById('footNote').innerHTML = '';
    document.getElementById('footTwo').innerHTML = '';
  }
});
.ftn {
  position: fixed;
  bottom: 10%;
  margin-left: auto;
  margin-right: auto;
  max-height: 100%;
  overflow: hidden;
  transition: max-height 0.8s ease-in-out;
}

.no-height {
  max-height:0;
  transition: max-height 0.8s ease-in-out;
  overflow-y: hidden;
}
.hide {
  display: none;
  color: red;
}
<a href="#1a" onclick='toggleDiv("n1")' id="1a" class='href'> 1 </a>
<div id="n1" class="hide">
  <a href="#1a"> 1 </a> [sometext]
</div>
<br>
<a href="#2a" onclick='toggleDiv("n2")' id="2a" class='href'> 2 </a>
<div id="n2" class="hide">
  <a href="#2a"> 2 </a> [sometext2]
</div>

<div id='footNote' class='ftn'> </div>
<div id='footTwo' class='ftn'> </div>