preventDefault()で無効にしたイベントを有効にする方法
preventDefault()で無効にしたイベントを有効にする方法を紹介します。
1.はじめに
preventDefault()は、「preventDefault()について」で紹介したとおり、実行したイベントがキャンセル可能である場合、イベントをキャンセルするためのメソッドです。
が、preventDefault()でイベントキャンセルしたあと、再びイベントを有効にする方法が分かりません。
ということで、preventDefault()で無効にしたイベントを有効にする方法について紹介します。
2.jQueryを使ってpreventDefault()で無効にしたリンクを有効にする
ここではa要素を使って、preventDefault()で無効にしたリンク先への遷移を再び有効にするサンプルを用います。
jQueryでは、preventDefault()メソッドをon()とoff()と組み合わせて有効・無効を切り替えます。
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
$(function(){
$('#on').click(function(){
$("a").on('click', myHandler);
});
$('#off').click(function(){
$("a").off('click', myHandler);
});
});
function myHandler(e){
e.preventDefault();
}
</script>
<a href="https://www.koikikukan.com/">リンク</a>
<button id="on">無効</button>
<button id="off">有効</button>
「ONにする」ボタンをクリックすると、preventDefault()を有効にし、a要素をクリックしてもリンク先に遷移しなくなります。
「OFFにする」ボタンをクリックすると、preventDefault()を無効にし、a要素をクリックするとリンク先に遷移できるようになります。
3.JavaScriptでpreventDefault()で無効にしたリンクを有効にする
JavaScriptの場合、リンクの無効化はaddEventListener()、再び有効にするにはremoveEventListener()を利用します。
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
function on_event() {
document.getElementById('test').addEventListener('click', myHandler, false );
}
function off_event() {
document.getElementById('test').removeEventListener('click', myHandler, false );
}
function myHandler(e){
e.preventDefault();
}
</script>
<a id="test" href="https://www.koikikukan.com/">リンク</a>
<button onclick="on_event()">無効</button>
<button onclick="off_event()">有効</button>
認識誤りがありましたらどこかでつぶやいてください。
4.参考サイト
Posted by yujiro このページの先頭に戻る
- jQuery+ajaxでモーダルのコンテンツを取得する方法
- jQueryでパスワードの表示・非表示を切り替えるサンプル
- jQueryでファイル選択時にプレビュー表示する方法
- ラジオボタンをjQueryで解除する方法
- テーブルのセルをポイントすると行と列を反転表示するjQueryプラグイン「Table Hover」
- jQueryで親ページからiframeのスクロールバーを非表示にする方法
- jQueryのカスタムビルドが簡単にできるサービス「jQuery Builder」
- jQueryでCSSをまとめて書き換える方法のまとめ
- 親ページからiframe内の要素にCSSを適用させる方法
- jQueryで要素を削除する方法のまとめ
- jQueryでテキストを追加するたびにスクロールさせる方法
- jQuery.ajax()でファイルをアップロードする方法
- jQueryで要素数を取得する方法のまとめ
- jQueryやJavaScriptでパスワードフィールドの文字を表示する方法
- jQueryでフォームデータを送信する方法のまとめ
トラックバックURL
コメントする
greeting