禁用超链接

Lor*_*nzo 1 javascript jquery hyperlink

只有在网格控件中选择了元素时,我的页面上的某些超链接才能启用.

当我在页面上选择一行时,我有机会注入一些代码,我想使用jquery代码启用/禁用这些超链接.

有什么建议?

lon*_*day 6

不禁用它们会更容易,但仅仅是为了防止它们执行它们自动执行的操作.我会这样做$().delegate:

$(document.body).delegate('a', 'click', function(e) {
    if ($(this).is('.disabled')) { // or whatever logic here
        e.preventDefault();
    }
});
Run Code Online (Sandbox Code Playgroud)

您可以使用条件子句中的任何逻辑,例如检查页面上是否存在其他元素,检查配置变量等.

编辑如果树上的处理程序停止传播,则无法可靠地工作.如果你有很多函数要做传播,你最简单的解决方案是在每个函数的开头做条件检查:

$('#your_link').click(function(e) {
    if (logic) {
        e.stopPropagation();
        e.preventDefault();
    };

    // the rest of your function here
});
Run Code Online (Sandbox Code Playgroud)