2013-05-20 103 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搜索者的緣故。