在jQuery中禁用链接元素,然后在以后启用它

时间:2014-01-14 20:59:01

标签: jquery hyperlink

我在网页上有以下链接元素。我如何使用jQuery禁用它?似乎设置disabled属性不会禁用它。

<A style="COLOR: black" href="javascript:__doPostBack('GridViewWithLinkqToSQL','Page$20')">20</A>

编辑1:答案(带有功能齐全的示例页代码)

最后,我能够启用/禁用链接。要启用,只需附加一个单击处理程序,其中禁用了默认的事件操作,并启用了删除相同的单击处理程序。在我的下面的代码中,Link1将打开yahoo主页,而当这两个链接都启用时,Link2将显示javascript错误。

带有必要的javascript / jQuery的Html页面代码如下。使用此方法,您可以启用/禁用div中的多个超链接(如在Grid控件中)。以下是视频的链接,该视频将显示禁用和启用链接非常有用的情况:Disable all hyperlinks within a GridView during AJAX Postback。您将在视频中注意到,当用户单击列标题链接或页码链接时,它不会执行任何操作,这是我们在发生长AJAX回发并且用户开始不耐烦地点击链接时所需要的。

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Enable/Disable Links</title>
     <script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
</head>
<body>
    <div id="div1">
        <a href="https://www.yahoo.com">Link1</a>
        <a style="COLOR: black" href="javascript:__doPostBack('GridViewWithLinkqToSQL','Page$20')">Link2</a>
    </div>
    <input id="Button1" type="button" value="Disable Links" onclick="ToggleLinks(true);" />
    <input id="Button2" type="button" value="Enable Links" onclick="ToggleLinks(false);" />
    <script type="text/javascript">
        function ToggleLinks(disabled) {
            var div1 = $('#div1');

           // div1.find("*").prop("disabled", disabled);
            if (disabled) {
                div1.find("a").each(function (i, element) {
                    $(this).click(function (e) {
                        e.preventDefault();
                        return false;
                    });
                });
            }
            else {
                 div1.find("a").each(function (i, e) {
                    $(this).unbind("click");
                });
            }
        }
    </script>
 </body>
</html>

2 个答案:

答案 0 :(得分:3)

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

这是工作小提琴:http://jsfiddle.net/g5Mkj/

答案 1 :(得分:2)

链接上没有可以设置为禁用它的属性。您可以做的是删除它的href属性。

$('#yourAnchorId').removeAttr('href');

或者您可以在其上设置取消事件传播的点击事件:

$('#yourAnchorId').click(function(event) {
     event.preventDefault();
});