有人知道如何在jquery中禁用一个链接而不使用return false吗?
具体来说,我要做的是禁用一个项目的链接,使用jquery执行点击它触发一些东西,然后重新启用该链接,以便如果它再次单击它作为默认工作。
谢谢。
戴夫
更新
这是代码。在应用.expanded类之后,它需要做的是重新启用被禁用的链接。
$('ul li').click(function(e) {
e.preventDefault();
$('ul').addClass('expanded');
$('ul.expanded').fadeIn(300);
//return false;
});
作为后端工程师,我花了一段时间来思考如何做到这一点,但下面是我如何解决完全相同的问题。
const resendCodeTimeOutPeriodInMs = 30000; // 30seconds.
function resend2faCodeOnLogin(sendByEmail) {
const resendCodeLinkElement = $('#resendCodeLink');
const disabledState = resendCodeLinkElement.attr('disabled');
if (disabledState === 'disabled') {
resendCodeLinkElement.preventDefault();
} else {
resendCodeLinkElement.attr("disabled", true);
resendCodeLinkElement.addClass('disabled');
submitForm('#twoFactorResendCodeForm', (response) => {
setTimeout(function () {
$('#resendCodeLink').removeClass('disabled');
resendCodeLinkElement.attr("disabled", false);
}, resendCodeTimeOutPeriodInMs);
}, (response) => {
console.error(response);
});
}
}
标准CSS摘自网络上著名的例子:
a.disabled {
opacity: 0.5;
pointer-events: none;
cursor: default;
我的方法是确保一个给定的按钮在用户体验可以再次点击它之前被禁用30秒。