を使用してイベントを制御するだけではありません。window.event
次のように標準化してみてください。
function sendDetails(e, type) {
var evt = window.event || e;
if (evt.preventDefault) {
evt.preventDefault();
} else {
evt.returnValue = false;
}
// ...
}
HTML は次のようにする必要があります。
<a href="#" class="button" onclick="sendDetails(event, 'Edu');">ASDF</a>
jQuery 以外のもう 1 つの解決策は、HTML を次のように変更することです。
<a href="#" class="button" onclick="sendDetails(event, 'Edu'); return false;">ASDF</a>
その場合、関数で処理するものを使用する必要はありませevent
んsendDetails
。はreturn false;
、デフォルトの動作を自動的に防ぎます。ただし、sendDetails
関数で例外が発生した場合、return false;
は実行されず、デフォルトの動作が許可されます。それが私が使用するのが好きな理由ですpreventDefault
-関数ですぐに呼び出して、動作をすぐに停止し、必要なことを実行できます。
同時に、jQuery を使用している場合は、次のようにクリック イベントをバインドしてみてください。
$(document).ready(function () {
$(".button").on("click", function (e) {
e.preventDefault();
// Your sendDetails code (without the "event" stuff)
// OR call sendDetails (and remove the "event" stuff in the sendDetails function)
});
});
その場合、HTML は次のようになります。
<a href="#" class="button">ASDF</a>
.button
私が提供したセレクターを使用する代わりに、これが適用される特定の要素をターゲットにする方がはるかに簡単ですが. 「ボタン」クラスはこれらの対象以外にも適用されると確信しています<a>
が、間違っているかもしれません:)
jQuery を使用すると、コールバックに含めた変数をevent
そのまま使用できるようにオブジェクトが標準化されているため、この状況では jQuery を使用すると便利です。私はそれが単なる.e
click
window.event || e