使用jquery点击一次后禁用链接?

时间:2013-02-10 02:45:30

标签: javascript hyperlink

嗨,有人可以帮助,我试图找到一种方法,在每个用户会话点击一次后禁用链接,我可以在jquery中这样做吗?

我是javasript和jquery的新手,所以有人可以告诉我需要做什么感谢。

3 个答案:

答案 0 :(得分:3)

绑定event.preventDefault()以防止跟踪链接的默认浏览器事件。在随后的点击中执行此操作(以便在第一次单击时允许它 - 这是您想要的)。

$(".oncelink").one('click',function(e){
    $(this).on('click',function(ev){
      ev.preventDefault();
    });  
});

答案 1 :(得分:1)

你必须在服务器端进行一些检查才能使用这种逻辑。但是在使用jQuery的客户端,您可以执行类似

的操作
$('a').on('click', function()
{
    var me = $(this);
    //You can also set some attribute value if you do not want to use class
    if(me.hasClass('disabled'))
    {
        return false;
    }
    else
    {
        me.addClass('disabled');
    }
});

答案 2 :(得分:0)

在HTTP连接之间保持状态的一种方法是使用cookie。您应该使用服务器端语言进行cookie设置/获取,因为客户端cookie设置/获取可能会变得混乱,更不用说是不安全且易于利用。此外,如果用户在浏览器中关闭了JS,那么这甚至无法正常工作,使您的努力变得毫无价值。但是,它看起来像这样:

// on dom ready

var onceButton = document.getElementById('once');
function disableButton () {
    onceButton.disabled = 'disabled';
    document.cookie="disable_button=1";

    // prevent listening on future clicks
    onceButton.removeEventListener('click', disableButton, false); 
}

if (document.cookie.indexOf('disable_button=1;') === -1) { 
    // if no cookie set, wait until click happens to disable button
    onceButton.addEventListener('click', disableButton, false);
} else {
    // cookie set, disable immediately
    disableButton();
}