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