嗨,有人可以帮忙吗,我试图找到一种在每个用户会话单击一次链接后禁用链接的方法,我可以在 jquery 中执行此操作吗?
我是 javasript 和 jquery 的新手,所以有人可以告诉我需要做什么,谢谢。
嗨,有人可以帮忙吗,我试图找到一种在每个用户会话单击一次链接后禁用链接的方法,我可以在 jquery 中执行此操作吗?
我是 javasript 和 jquery 的新手,所以有人可以告诉我需要做什么,谢谢。
绑定 event.preventDefault() 以防止默认浏览器事件跟随链接。仅在后续单击时执行(以便在第一次单击时允许它 - 这就是您想要的)。
$(".oncelink").one('click',function(e){
$(this).on('click',function(ev){
ev.preventDefault();
});
});
您还必须在服务器端进行一些检查才能使这种逻辑起作用。但是在客户端使用 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');
}
});
在 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();
}