2015-08-18 44 views
0

我試圖把一個小復活節彩蛋放在一個網站上,如果用戶點擊一個鏈接x次,它會觸發一個彈出窗口,假設這會是某種JS或JQuery,但我不知道從哪裏開始或者甚至可能。我想我真正想要的東西就像內置於Android'關於手機'頁面的復活節彩蛋,它會在5秒內點擊大約7次後打開新頁面。有什麼辦法在瀏覽器中做到這一點?我可以創建一個鏈接,只有幾次點擊後纔有效

也許是一個OnClick命令,它將計數器加1並在計數器達到指定數量時執行動作,但每10秒將計數器重置爲0? (我不想弄得太容易找到!)

感謝

+0

那麼做呢?你剛纔描述了一種方法來做到這一點。 – emd

回答

1

試試這個用jQuery:

HTML:

<a id='lnkEgg' data-clicks='0'>Click for surprise</a> 

腳本:

$(function(){ 
    $("#lnkEgg").on("click",function(){ 
     var c=$(this).data("click"); 
     if(c==7){ 
      //if it equals to whatever number you are chasing 
      //open the popup 
     }else{ 
      $(this).data("clicks",c++); 
     } 
    }); 
}); 
+0

非常感謝,肯定讓我朝着正確的方向前進,對不起我不能高調,但我需要先獲得更多的代表點;) – bhygate

0

使用的setTimeout(你明確每個時間)和的preventDefault上的click事件,如果它不符合你的要求。

(function (node) { // IIFE to keep our namespace clean :) 
    var timer, 
     count = 0; 
    function timeup() { 
     count = 0; 
    } 
    function handler(e) { 
     clearTimeout(timer); 
     timer = setTimeout(timeup, 5e3); // 5 seconds 
     ++count; 
     if (count < 7) // number of clicks 
      e.preventDefault(); 
    } 
    node.addEventLister('click', handler); 
}(document.getElementById('myLink'))); // passing the <a> into the IIFE 

此代碼必須後運行目標元素存在

0

@ TheVillageIdiot的技術是要走的路。在這裏,我將使用相同的技術,只是顯示一些方法:

$(function(){ 
 
    var egg = $('#lnkEgg'); 
 
    egg.on('click', function() { 
 
     //increment and check if magic clicks has been reached 
 
     if(++$(this).data().clicks == 7) { 
 
      console.log("You've now clicked the required number of times"); 
 
      //do some more operations 
 
      $(this).data('complete', true); 
 
      console.log($(this).data()); 
 
     }; 
 
    }); 
 
    //Reset counter every 10 seconds 
 
    setInterval(function() { 
 
     egg.data().clicks = 0; 
 
    }, 10000); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<a id="lnkEgg" data-clicks="0">Click for surprise</a>

相關問題