操作は実行されないため、ユーザーが操作を開始する時期を知る必要があり、event.isDefaultPrevented()
を使用して、このメソッドがイベントハンドラーコールによってトリガーされるかどうかを判断できます。これを使用して、関数呼び出しをトリガーできます。これは、モジュールを含むページを取得するのではなく、href="index.php?page=contact"
などのjqueryでXHRの動的URLを使用するのにも役立ちます。また、この機能とSEOの利点も提供するMOD書き換えオプションをチェックアウトすることもできます。 jQuery停止イベント機能。 contact.php
を使用している場合は、$(document).bind("keydown keypress", function(event)
が機能しないことに注意してください。ハイパーリンクである必要があるハイパーリンクがあることもありますが、リンクを処理して開く必要はありませんが、JavaScript関数を呼び出したいだけです。幸いなことに、JQUERYにはハイパーリンク操作を停止できる機能があります。 e.preventDefault()
event.preventDefault()
例1:ハイパーリンクのクリックをブロックしてキャプチャします
$("a").click(function(event) { event.preventDefault(); $('<div> <p>') .append('默认 ' + event.type + ' 已阻止') .appendTo('#log'); });例2:フォームの送信ボタンをブロック</p> <p><strong> </strong> </p> <pre class="brush:php;toolbar:false">$('#myform').submit(function(event) { event.preventDefault(); var self = this; window.setTimeout(function() { self.submit(); }, 2000); });
$("#ELEMENT_WHICH_AFFECT_THE_SLIDEUP") .click(function(event){ event.preventDefault(); // 阻止链接重定向 var time = 1000; // slideup 效果的时间 var url = $(this).attr("href"); // 选择用于通过 JavaScript 重定向的 URL $("#ELEMENT_TO_SLIDE_UP").slideUp(time); // 效果 window.setTimeout(function(){document.location.href=url;}, time); // 超时并在效果完成后等待 return -1; });
この関数は、ハイパーリンクだけでなく、ブロックするデフォルトのアクションを備えた要素にも使用できます。
$(document).keydown(function(event){ // 向下移动 if(event.keyCode == '40'){ event.preventDefault(); var posY = $('#'+selectedTxtID).css('top'); posY = parseFloat(posY); var newPosY = posY + 1; $('#'+selectedTxtID).css('top', newPosY+'px'); } });
jQueryのメソッドは、主にイベントのデフォルトの操作が発生しないように使用されます。たとえば、Webページにリンクがあり、クリック時に別のページにリダイレクトする必要がない場合は、
PreventDefault()メソッドとStopPropagation()メソッドの違いはどうですか? preventDefault()
preventDefault()
メソッドはイベントがDOMツリーで泡立つのを防ぎ、親ハンドラーがイベント通知を受信するのを防ぎます。言い換えれば、は要素のデフォルトの動作を処理し、はDOM階層内のイベントのストリームを処理します。
preventDefault()
すべてのイベントでPreventDefault()メソッドを使用できますか? stopPropagation()
preventDefault()
いいえ、preventDefault()
すべてのイベントでは使用できません。デフォルトのアクションを使用してブロックするイベントでのみ動作します。たとえば、アンカータグ「クリック」イベントで使用して、新しいURLへのナビゲートのデフォルトアクションを防ぐことができます。ただし、デフォルトのアクションなしでは、カスタムイベントでは使用することはできません。
イベントのPreventDefault()メソッドが呼び出されたかどうかを確認する方法は?
isDefaultPrevented()
メソッドを使用して、イベントで呼び出されるかどうかを確認できます。このメソッドは、ブール値を返します。 preventDefault()
preventDefault()
はい、インターネットエクスプローラーで
メソッドを使用できます。ただし、インターネットエクスプローラーの古いバージョン(IE8以下)はこの方法をサポートしていません。これらのバージョンでは、イベントオブジェクトのプロパティを使用して同じ効果を達成できます。 preventDefault()
returnValue
無セルなイベントで
電話をかけると、この方法は無効になります。無セルなイベントとは、デフォルトの操作ではブロックできないイベントを指します。イベントオブジェクトのプロパティを使用して、イベントがキャンセルできるかどうかを確認できます。 preventDefault()
cancelable
はい、同じイベントで
を複数回呼び出すことができますが、追加の効果はありません。イベントのデフォルトアクションがブロックされると、を呼び出すことは何も変更されません。 preventDefault()
preventDefault()
はい、キーボードイベントで
を使用できます。たとえば、「キーダウン」イベントのデフォルトアクションをブロックして、文字がテキストフィールドに入るのを防ぐことができます。
preventDefault()
条件ステートメントで
を使用して、イベントをブロックする必要がある場合を制御できます。たとえば、一部の検証チェックが失敗した場合、フォームの提出を防ぐことができます。
preventDefault()
はい、タッチイベントで
を使用できます。たとえば、「Touchstart」イベントのデフォルトアクションをブロックして、タッチジェスチャーの認識を防ぐことができます。以上がjquery .preventdefault()でアクションを停止するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。