2011-01-07 7 views
5

要素(aまたはdiv)のonclickとhrefを有効または無効にしたいだけです。要素のhrefとonclickを無効にする(そして再び有効にする)

私はこれを行う方法がわかりません。

クリックイベントでハンドラを追加することでonclickを無効にすることはできますが、hrefは引き続き使用できます。


$(this).unbind().click(function(event){ 
    event.preventDefault(); 
    return; 
}); 

編集 A ELEMENTS


if ($(this).attr("href")) { 
    $(this).attr("x-href", $(this).attr("href")); 
    $(this).removeAttr("href"); 
} 
+0

これはかなり曖昧な質問です。あなたは何をしようとしているのですか? 'href'プロパティも削除しますか? –

+0

Ok、申し訳ありません;)要素(divまたはa)上のすべてのリンク(clickまたはhref)を無効/有効にするには、ボタンをクリックするだけです。 – jibees

答えて

5

[OK]を、私は回避策を見つけた:含むメインのdivの上にオーバーレイを置きます私が無効にしたいすべての要素.. それはちょうど動作します。

+1

+1ハッキーですが、とてもシンプルです... –

+0

または、$( "#divId")を使用してください。 $( "#divId")。show();アイデアをありがとう;) – razvanone

1

FOR HACKがクリック無効にするには、これを試してみてくださいFOUND:

$(この).unbind( 'クリック');

2

次の操作を試みることができる:

$('a, div').click(
    function(e){ 
    return false; 
     // cancels default action *and* stops propagation 

    // or e.preventDefault; 
     // cancels default action without stopping propagation 
}); 

MDC documentation for preventDefaultjQuery documentation for event.preventDefault

SO question: JavaScript event.preventDefault vs return false

clickイベントがキャンセルされているため、「hrefがまだ利用可能です」という問題は不明です。あなたはhrefaから要素を削除したい場合は:

$('a[href]').attr('href','#'); 

をそれらを削除(あるいは、むしろ、#にURLを置き換え)します。


はOPで(質問への)コメントに反応してを編集:

は、申し訳ありません[OK]を;)私はちょうどボタンをクリックして(できるようにしたい)、無効にする/有効にします要素(div要素またはA)

$('#buttonRemoveClickId, .buttonClassName').click(
function() { 
    $('a, div').unbind('click'); 
}); 
$('#buttonReplaceClickId, .buttonOtherClassName').click(
function() { 
    $('a, div').bind('click'); 
}); 
  • 以上のすべてのリンク(クリックまたはHREF),
  • bind()
+0

a要素の解決策を見つけました(これは、href値をx-href属性に入れてそれを再び有効にすることからなる)。 しかし、どうすればonclickハンドラを再度有効にできますか? – jibees

0

あなたはそれはあなたが求めているものだ場合は、ステータスバーに現れてから、元のを防ぐために""に直接href属性を設定することができます。

$(this).unbind().click(function(event){ 
    event.preventDefault(); 
}).attr("href", ""); 

そうしないと、event.preventDefault()は既にリンクがクリック可能になるのを止めます。

6

onclickイベントでfalseを返すと、hrefは無視されます。

  1. これはグールに行きます:<a href="http://www.google.com" onclick="alert('Go to Google')">Test</a>

  2. これはGoogleに行くことはありません:<a href="http://www.google.com" onclick="alert('Go to Google'); return false;">Test</a>

+0

2行目は:Test pauldendulk

+0

ありがとうございます。今修正されました – wosis

関連する問題