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/

4

1 回答 1

8

在您的 click() 函数中,您需要显式返回 false (在发现它被禁用后)。否则,默认处理程序将导致浏览器转到或运行指定的 href。

OP 很可能已经继续前进,所以这个答案真的只是为了谷歌搜索者的缘故。

于 2014-03-20T21:46:11.163 回答