【问题标题】:disable a link after clicked once using jquery?使用jquery单击一次后禁用链接?
【发布时间】:2013-02-10 11:16:13
【问题描述】:

嗨,有人可以帮忙吗,我试图找到一种在每个用户会话单击一次链接后禁用链接的方法,我可以在 jquery 中执行此操作吗?

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

【问题讨论】:

标签: javascript hyperlink


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    您还必须在服务器端进行一些检查才能使这种逻辑正常工作。但是在客户端使用 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');
        }
    });
    

    【讨论】:

      【解决方案3】:

      在 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();
      }
      

      【讨论】:

        猜你喜欢
        • 2017-04-17
        • 2012-10-05
        • 1970-01-01
        • 2016-09-05
        • 1970-01-01
        • 1970-01-01
        • 2017-09-03
        • 2017-05-31
        • 1970-01-01
        相关资源
        最近更新 更多