How do I dynamically enable/disable links with jQu

2019-01-08 16:09发布

I have some links displayed on a page. I would like to enable/disable them based on other events on the page. Is there a way to do this with jQuery?

6条回答
太酷不给撩
2楼-- · 2019-01-08 16:43
$('selector_for_links_to_disable').bind('click', function(e){
        e.preventDefault();
})

and for enabling:

$('selector_for_links_to_enable').unbind('click')
查看更多
小情绪 Triste *
3楼-- · 2019-01-08 16:46
$(document).delegate('.links', 'click', function () {
  if ([your condition is true]) {
    return false;
  }
})

delegation is better than handlers, because you can call them before the dom is loaded

查看更多
唯我独甜
4楼-- · 2019-01-08 16:55

it depends on what you mean by "disable".

this will make them do nothing:

$("A").click(function() { return false; });
查看更多
Evening l夕情丶
5楼-- · 2019-01-08 16:57

You could do something like:

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

Be sure to show that they no longer work somehow, otherwise your users will get confused, lol.

查看更多
走好不送
6楼-- · 2019-01-08 17:01

You can do something like this:

<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' />
查看更多
Lonely孤独者°
7楼-- · 2019-01-08 17:01

When I am giving functions to the buttons by jquery, I like to do this:

indice = '';

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

        // your code
    }

    indice = 'value1';
    return indice;

});

with this, you get the function just the first time you press de button. Now you just have to set indice different of value1 to your link works again

查看更多
登录 后发表回答