0

私はチャット サイトを作成しており、チャットへの送信ボタンを押せないようにする JavaScript ハイパーリンクを作成したいと考えていました。私のチャットでは、[url=http://www.site.com]text[/url] でハイパーリンクを作成できます。ただし、javascript は引き続き動作します。コードは次のとおりjavascript:document.getElementById("sendbutton").disabled = true; void(0)です。そこで、アドレスバーでこのコードをテストしたところ、コマンドの実行に成功し、ページは変更されませんでした。しかし、それをハイパーリンクに入れてクリックすると、「無効」という言葉が上にある空白の白いページが読み込まれます。私は何を間違えましたか?void(0) コマンドがアドレス バーでは機能するのに、ハイパーリンクを挿入すると機能しないのはなぜですか?

4

2 に答える 2

1

アンカー タグがデフォルト アクション (ドキュメントの場所の変更) を実行しないようにするには、onclick次のようにイベントをキャンセルする必要があります。

<a href="..." onclick="return false;">do it</a>

hrefこの方法では、アンカーが何であっても、ページをリダイレクトしません。

ただし、すでに持っている JavaScript コードもキャンセルされるため、イベント自体hrefですべて実行する必要があります。onclick

<a href="#" onclick="document.getElementById('sendbutton').disabled = true; void(0); return false;">do it</a>

ライブ テスト ケース

于 2012-08-19T06:03:05.183 に答える
0

これは、 jQueryクリック コールバックを使用して行うことができます。

$("#sendbutton").click(function(event) {
  event.preventDefault(); // Should stop the page reloading.
}

このコールバックから戻ることは、呼び出しとfalse同等であることに注意してください。preventDefault()stopPropogation()

于 2012-08-19T06:00:07.353 に答える