2013-04-17 62 views
0

我有三個主題標籤URL的網頁:當所有鏈接被點擊後重定向?

<a href="#Link1">Some Text 1</a> 
<a href="#Link2">Some Text 2</a> 
<a href="#Link3">Some Text 3</a> 

一旦用戶點擊了三個,我需要他們重定向到另一個網址。

有沒有人有一個例子,或知道我可以做到這一點?

+0

用戶點擊之後第三個鏈接,你不等待他/她閱讀相關的文字? – Christophe

回答

0

試試這個:

window.onload = function() { 
    var anchors, clicked_count, clicked, i, cur_anchor, my_anchor_id; 

    anchors = document.getElementsByTagName("a"); 
    clicked_count = 0; 
    clicked = {}; 

    for (i = 0; i < anchors.length; i++) { 
     cur_anchor = anchors[i]; 
     cur_anchor.setAttribute("data-anchor-id", i); 
     cur_anchor.onclick = function (e) { 
      e = e || window.event; 
      e.preventDefault(); 

      my_anchor_id = this.getAttribute("data-anchor-id"); 
      if (!(my_anchor_id in clicked)) { 
       clicked[my_anchor_id] = null; 
       if (++clicked_count === anchors.length) { 
        console.log("WOULD BE REDIRECTING"); 
        //window.location.href = "NEW URL"; 
       } 
      } 
     }; 
    } 
}; 

DEMO:http://jsfiddle.net/hCRtD/1/

爲了證明演示作品,點擊需要的最後一個前點擊一些錨幾次。它不會只完成3次點擊後完成(我的原始解決方案存在這種缺陷),但會等到每個點擊至少一次。

它爲所有<a>標籤設置了一個特殊屬性,用於唯一標識它們。顯然,可以使用id,但您沒有包含它,並且很容易以這種方式進行。

然後,當單擊一個錨點(僅其第一次)時,其唯一標識符被添加到一個集合(clicked)。

當計數器(clicked_count),每次第一次點擊一個錨點時遞增,達到首先找到的錨點的總數,那麼一切都已完成。

+0

先生,您是天才!你的代碼幫助我走向了盡頭!非常感謝! –

+0

@SarahChampion完全沒問題!讓我知道如果你需要更多的幫助,這:) – Ian

0

添加HTML類:

<a href="#Link1" class="redirect">Some Text 1</a> 
<a href="#Link2" class="redirect">Some Text 2</a> 
<a href="#Link3" class="redirect">Some Text 3</a> 

並請javascript:

function catchAnchors(){ 
    var links = document.getElementsByClassName("redirect");//get your links 
    for(var i=links.length-1;i>=0;i--){ 
    if(!links[i].wasClick)return;//if never clicked return; 
    } 
    location.href = "your url";//redirect 
} 

var links = document.getElementsByClassName("redirect");//get your links 
for(var i=links.length-1;i>=0;i--){ 
    links[i].onclick = function(){ 
    this.wasClick = true;//set mark onclick event 
    catchAnchors();//check links 
    } 
} 
相關問題