单击后禁用链接

时间:2014-04-27 12:44:10

标签: javascript hyperlink tabs

所以,我的页面中有一些链接(< a>类型),标有不同的ID-s。他们有这些属性:

  1. id - 每个链接的唯一ID
  2. href - 将在新标签页中打开的网址/!important - >需要在新标签页中打开链接!/
  3. target =“_ blank” - 用于在新标签页中打开的链接
  4. 所以,链接看起来像:

    <a id="a1" href="thelink" target="_Blank">Link1</a>
    <a id="a2" href="thelink" target="_Blank">Link2</a>
    <a id="a3" href="thelink" target="_Blank">Link3</a>
    etc..
    

    我想要点击一个链接,在新标签页中打开的网址,以及要禁用的原始网页中的链接,但不是这样:

    <a id="a3" href="#" target="_Blank">Link1</a
    

    我尝试使用onclick删除“href”属性并onclick以清空“href”属性,但链接未打开,因为onclick首先触发并删除“href”元素,然后链接在新选项卡中打开并且效果不是我想要的。 有一些想法的人?

3 个答案:

答案 0 :(得分:0)

怎么样

window.onload=function() {
  document.getElementById("a1").onclick=function() {
    setTimout(function() {document.getElementById("a1").disabled=true;},10)
  }
}

答案 1 :(得分:0)

你可以这样做

 <a id="a3" href="http://stackoverflow.com" onclick="a(this);">Link3</a>
 <a id="a4" href="http://google.com"  onclick="a(this);">Link4</a>
 <a id="a5" href="http://wikipedia.org"  onclick="a(this);">Link5</a>

   <script>
      function a(t) {
        var href = t.getAttribute("href");
        if(href==null || href=="") return;
        window.open(href,'_blank');
        t.removeAttribute("href");
      }
   </script>

答案 2 :(得分:0)

您可以使用类名作为指标

来完成事件

http://jsfiddle.net/pyQV2/

在这个例子中,我添加了一个类的每个链接,只是为了指示它的目标函数。然后,在页面加载时,我将onclick事件附加到每个链接。

var links = document.getElementsByClassName('notclicked');

for (var i=0; i<links.length; i++) {
    links[i].onclick = function(e) {
        if (e.target.className == 'notclicked')
            e.target.className = 'clicked';
        else {
            if (e.preventDefault)
                e.preventDefault();
            else /* for IE */
                e.returnValue = false;
        }
    }
}

如果它有旧类,只需更改它以备将来点击。如果它有新课程,只需停止活动。