有人知道如何在jquery中禁用一个链接而不使用return false吗?

具体来说,我要做的是禁用一个项目的链接,使用jquery执行点击它触发一些东西,然后重新启用该链接,以便如果它再次单击它作为默认工作。

谢谢。 戴夫

更新 这是代码。在应用.expanded类之后,它需要做的是重新启用被禁用的链接。

$('ul li').click(function(e) {
    e.preventDefault();
    $('ul').addClass('expanded');
    $('ul.expanded').fadeIn(300);
    //return false;
});

当前回答

只需设置preventDefault并返回false

   $('#your-identifier').click(function(e) {
        e.preventDefault();
        return false;
    });

这将是禁用链接,但仍然,你会看到一个可点击的图标(手)图标。你也可以删除下面

$('#your-identifier').css('cursor', 'auto');

其他回答

试试这个:

$("a").removeAttr('href');

编辑-

从您更新的代码:

 var location= $('#link1').attr("href");
 $("#link1").removeAttr('href');
 $('ul').addClass('expanded');
 $('ul.expanded').fadeIn(300);
 $("#link1").attr("href", location);

HTML链接示例:

        <!-- boostrap button + fontawesome icon -->
        <a class="btn btn-primary" id="BT_Download" target="_blank" href="DownloadDoc?Id=32">
        <i class="icon-file-text icon-large"></i>
        Download Document
        </a>

在jQuery中使用

    $('#BT_Download').attr('disabled',true);

添加到CSS:

    a[disabled="disabled"] {
        pointer-events: none;
    }

我最喜欢的是“签出编辑项目和防止-狂野西部点击到任何地方-在签出”功能

$('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>

现在你可以使用禁用属性链接

干杯!

只需设置preventDefault并返回false

   $('#your-identifier').click(function(e) {
        e.preventDefault();
        return false;
    });

这将是禁用链接,但仍然,你会看到一个可点击的图标(手)图标。你也可以删除下面

$('#your-identifier').css('cursor', 'auto');

unbind()在jQuery 3中已弃用,请使用off()方法代替:

$("a").off("click");