我可以做一个 link 只在点击几次后才有效吗

Can I make a link that only works after several clicks

我正在尝试在我正在构建的网站上放置一个小复活节彩蛋,如果用户点击 link x 次它会触发弹出窗口,我猜这会是某种 JS 或 JQuery 但我不知道从哪里开始,或者是否可能。我想我真正想要的是 Android 'About Phone' 页面中内置的彩蛋之类的东西,它会在 5 秒内点击大约 7 次后打开一个新页面。有没有办法在浏览器中执行此操作?

可能是一个 OnClick 命令,它向计数器加 1 并在计数器达到指定数字时执行操作,但每 10 秒将计数器重置为 0? (我不想让它太容易找到!)

谢谢

如果点击事件不符合您的要求,请使用 setTimeout(您每次都清除)和 preventDefault

(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

此代码必须运行目标元素存在

之后

用 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++);
        }
    });
});

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