web-dev-qa-db-ja.com

jQueryでリンクを動的に有効/無効にするにはどうすればよいですか?

ページにいくつかのリンクが表示されています。ページ上の他のイベントに基づいてそれらを有効/無効にします。 jQueryでこれを行う方法はありますか?

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

および有効化:

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

次のようなことができます:

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

なんらかの形で機能しなくなったことを必ず確認してください。そうしないと、ユーザーが混乱してしまいます。

4
pho3nixf1re

次のようなことができます:

<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' />
2
Naveed

「無効」の意味によって異なります。

これにより、何も実行されなくなります。

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

委任はハンドラよりも優れています。domがロードされる前に呼び出すことができるためです。

1
Tibastral

Jqueryでボタンに機能を提供するとき、私はこれをしたいです:

indice = '';

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

        // your code
    }

    indice = 'value1';
    return indice;

});

これにより、deボタンを初めて押したときに機能を取得できます。今、あなたは再びあなたのリンクが動作するようにvalue1とは異なるインデックスを設定する必要があります

0
Humberto Matias