2014-04-27 162 views
0

所以,我的頁面上有一些鏈接(< a> type),標有不同的ID-s。他們有這些屬性:!禁用鏈接,點擊後

  1. ID - 每一個環節
  2. HREF的唯一ID - 的URL,將在新標籤中打開/重要 - >這個鏈接需要在新標籤中打開/
  3. 目標=「_空白」 - 用於鏈接在新標籤頁

如此開放,鏈接看起來像:

<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.. 

我要當一條鏈路爲c舔,網址在新標籤中打開,並在原來頁面的鏈接被禁用,但不是這樣的:

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

我試着使用的onclick刪除「href」屬性和的onclick清空「href」屬性,但鏈接並未打開,因爲onclick首先觸發並刪除「href」元素,然後在新選項卡中打開鏈接並且效果不是我想要的效果。 有一些想法傢伙?

+0

如果刪除href屬性,則A元素不再是鏈接,而是具有不同默認樣式的錨點。 – RobG

回答

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> 
+0

這不起作用 – user3214661

+0

href屬性的值是一個字符串,所以'href == null'將始終爲false。你可能意思是'if(href =='')'。 – RobG

+0

對我來說,它工作得很好。我在鉻上嚐了一下。只需在html標籤後面添加javascript代碼即可。 – Paramore

0

如何

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

HTML5似乎沒有提及[* A元素*]的禁用屬性(http://www.w3.org/html/wg/drafts/html/master/text-level-semantics.html#the-a -元件)。 – RobG

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; 
     } 
    } 
} 

如果它有舊的類,只需將它改爲將來的點擊。如果它有新課程,請停止活動。