如何使用jQuery动态启用/禁用链接?

时间:2010-09-24 16:12:00

标签: jquery hyperlink

我在页面上显示了一些链接。我想根据页面上的其他事件启用/禁用它们。有没有办法用jQuery做到这一点?

6 个答案:

答案 0 :(得分:58)

$('selector_for_links_to_disable').bind('click', function(e){
        e.preventDefault();
})

并启用:

$('selector_for_links_to_enable').unbind('click')

答案 1 :(得分:4)

您可以执行以下操作:

$('.links').click(function(e){
  if( [some conditions] ){
    e.preventDefault();
  }
});

一定要证明他们不再以某种方式工作,否则你的用户会感到困惑,哈哈。

答案 2 :(得分:2)

取决于“禁用”的含义。

这将使他们无所作为:

$("A").click(function() { return false; });

答案 3 :(得分:2)

您可以这样做:

<script>
    $(document).ready(function() {
        $('input#disableall').live('click', function(){
            $('a').attr( 'class', 'disabled' );
            alert('All links are disabled.');
        });


        $('input#enableall').live('click', function(){
            $('a').attr( 'class', 'enabled' );
            alert('All links are enabled.');
        });

        $('a.disabled').live('click', function(event){
            event.preventDefault();
        });
    });
</script>

<a href='http://www.google.com'>Google<a/>
<a href='http://www.yahoo.com'>Yahoo<a/>
<a href='http://www.hotmail.com'>Hotmail<a/>

<input type='button' id='disableall' value='Disable Links' />
<input type='button' id='enableall'  value='Enable Links' />

答案 4 :(得分:1)

$(document).delegate('.links', 'click', function () {
  if ([your condition is true]) {
    return false;
  }
})

委托比处理程序更好,因为你可以在加载dom之前调用它们

答案 5 :(得分:0)

当我通过jquery为按钮提供功能时,我喜欢这样做:

indice = '';

$('myLink').live('click',function() {
    if (indice !== 'value1'){

        // your code
    }

    indice = 'value1';
    return indice;

});

有了这个,你第一次按下de按钮就可以得到这个功能。 现在你只需要为你的链接设置indice不同的value1