有人知道如何在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秒。
我最喜欢的是“签出编辑项目和防止-狂野西部点击到任何地方-在签出”功能
$('a').click(function(e) {
var = $(this).attr('disabled');
if (var === 'disabled') {
e.preventDefault();
}
});
因此,如果我想在第二个动作工具栏中禁用所有外部链接,而在“编辑模式”如上所述,我将添加编辑功能
$('#actionToolbar .external').attr('disabled', true);
火灾后链路示例:
<a href="http://goo.gl" target="elsewhere" class="external" disabled="disabled">Google</a>
现在你可以使用禁用属性链接
干杯!