jquery链接标记启用禁用

时间:2009-07-23 04:33:26

标签: jquery hyperlink tags

我想在加载过程中禁用链接,对于下面给出的代码

<span id="addlink">"<%= f.add_associated_link('Add Task', @project.tasks.build, :class=>"add") %></span>

我尝试使用下面的代码,但它不起作用

$("#addlink").attr("disabled", "disabled"); 

$("a.add").hide();

3 个答案:

答案 0 :(得分:27)

function disableLink(e) {
    // cancels the event
    e.preventDefault();

    return false;
}

如果要禁用它,请致电

$('#addlink').bind('click', disableLink);

如果要启用已禁用的链接,请致电

$('#addlink').unbind('click', disableLink);

答案 1 :(得分:4)

$('#addlink').click(function(e) {
    e.preventDefault();
    //do other stuff when a click happens
});

return false;

将阻止发生默认事件 并防止事件冒泡

这两者之间的选择取决于你的使用。如果要停止默认操作并且还需要冒泡事件,请使用preventDefault

答案 2 :(得分:2)

我会选择混合RaYell和凤凰的解决方案,在混合中加入jQuery's namespacing

$('#addlink').bind('click.killlink',function(event){
    event.preventDefault();
    // You can do any additional onClick behavior here
});

要取消绑定此事件,以及使用.killink命名空间分组的任何其他相关事件(任何类型),您可以运行此命令:

$('#addlink').unbind('.killlink');

正如凤凰指出的那样,使用return false可以防止事件冒泡。 preventDefault()具有非常明确的额外好处(与return false不同,根据上下文,这可能意味着许多不同的事情。)