嗨,有人可以帮助,我试图找到一种方法,在每个用户会话点击一次后禁用链接,我可以在jquery中这样做吗?
我是javasript和jquery的新手,所以有人可以告诉我需要做什么感谢。
答案 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();
}