使用jQuery停用/激活链接?

时间:2011-06-13 13:17:19

标签: jquery

我正在寻找一种简单的解决方案来停用/激活按钮链接。我可以使用addClass / removeClass在停用时将颜色更改为灰色,但仍然可以单击链接。有办法解决这个问题吗?

6 个答案:

答案 0 :(得分:2)

您可以阻止链接的默认行为,如下所示:

$('#linkID').click(function(e) { e.preventDefault(); });

如果您的意思是“按钮”而不是“链接”(正如您所说的“按钮链接”我不确定您的意思),您只需disable按钮:

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

答案 1 :(得分:2)

你可以试试这个:

$('#linkId')
    .addClass('deactivated')
    .click(function(e){
        if($(this).hasClass('deactivated')){
            e.preventDefault();
        }
    });

这是demo of link click deactivated

请发布您的代码,以便我们根据您的情况进行调整。

答案 2 :(得分:0)

与詹姆斯的回答相似(这是完全合适的),但方法略有不同:

$('a.disabled').click(function(e) {
    e.preventDefault();
    return false;
});

现在就这样使用:

<a href="foo" class="disabled">Disabled Link</a>

答案 3 :(得分:0)

  

在jQuery 1.4.3中,您现在可以传入   'false'代替事件处理程序。   这将绑定一个事件处理程序   相当于:function(){return   假; }。可以删除此功能   稍后再打电话:.unbind(   eventName,false)。

    //Same as e.preventDefault() and e.stopPropagation();
    $('a').click(false);

    //Or if you don't want to stopPropagation by default()...
    $('a').click(function(e) {
        e.preventDefault();
    });

答案 4 :(得分:0)

对于链接,删除href属性就足够了,如:

            if (<something>) {
                aHrefLink.attr('href', '/products?productId=' + productId);
                aHrefLink.attr('title', '');
            } else {
                aHrefLink.removeAttr('href');
                aHrefLink.attr('title', 'Please select the product first');
            }

答案 5 :(得分:0)

虽然这是一个老问题,但我只想更新解决方案。 您可以通过简单地添加 ui-disabled 类来轻松禁用JQuery Mobile中的任何,甚至是自定义DIV或类:

$('#customdiv').addClass('ui-disabled');