2013-05-20 152 views
0

以下示例正在启用/禁用href,但不适用于onclick。我需要启用/禁用这两个属性如何启用/禁用锚标记

注意:我不能简单地删除/绑定onclick事件虚拟函数(),因为它需要一旦我们启用它。

脚本代码:

<script type="text/javascript"> 
$(document).ready(function() { 
    $("#b1").click(function() { 
     $("#yahoo").attr("disabled", "disabled"); 
     $("#yahoo").css("background-color", "silver"); 
    }) 

    $("#b2").click(function() { 
     $("#yahoo").removeAttr("disabled"); 
     $("#yahoo").css("background-color", "white"); 
    }) 

    $("#yahoo").click(function (e) { 
     if ($("#yahoo").attr("disabled") == "disabled") { 
      e.preventDefault(); 
     } 
    }); 
}); 
</script> 

HTML代码:

<div> 
    <input type="button" id="b1" value="Disable Yahoo Link"> 
    <input type="button" id="b2" value="Enable Yahoo Link">  
</div>  
<a id="yahoo" target="_blank" href="javascript:alert('href alert')" onclick="javascript:alert('onclick alert')">Yahoo.com</a> 

工作实例 http://jsfiddle.net/nunnakirankumar/suYe4/

+0

由于您已经在JavaScript上下文中,因此您不需要'onclick'处理程序中的'javascript:'方案。它工作的唯一原因是因为在这种情况下'javascript:'被视为一个标签。 –

+1

同意@Kolink,但删除标签javascript:没有解决我的问题。 –

+0

它似乎对我来说工作得很好。我正在使用IE10。 –

回答

8

内的点击()函数,你需要明确返回false(发现后,它已禁用)。否则,默认处理程序将导致浏览器转到或运行指定的href。

该OP最有可能继续前进,所以这个答案实际上只是为了Google搜索者的缘故。