勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ

JavaScriptでaタグ内の特定の要素をクリックした際にページ遷移させず別の処理を行う方法

  JavaScript

JavaScriptでaタグ内の特定の要素をクリックした際にページ遷移させず別の処理を行い、それ以外の場所をクリックした場合はページ遷移させたいというケースがあった。また、HTMLのタグ構成は変更できないという制約がある状況。以下に対応方法をメモ。

 

対応方法

ソースコード

<style>
a{
    display: block;
    width: 300px;
    height: 300px;
    background-color: #f00;

    .click{
        margin: 10px;
        padding: 10px;
        background-color: #000;
    }
}
</style>
<a href="link">
    <div class="click">クリック</div>
</a>
<script>
document.querySelector('.click').addEventListener('click', (event) => {
    event.stopPropagation();
    event.preventDefault();

    console.log('遷移しません');
});
</script>

 

リファレンス

Event: stopPropagation() メソッド

https://developer.mozilla.org/ja/docs/Web/API/Event/stopPropagation

Event: preventDefault() メソッド

https://developer.mozilla.org/ja/docs/Web/API/Event/preventDefault

 - JavaScript

  関連記事

JavaScriptにて数値のカウントアップ及びカウントダウンを表示する「countUp.js」ライブラリの利用方法
JavaScriptにて数値のカウントアップ及びカウントダウンを表示する「countUp.js」ライブラリの利用方法

だいぶ前にバニラJSにて数値のカウントアップ及びカウントダウン表示を行う方法をメ ...

jQueryにて特定のIDが存在するかチェックし分岐処理する方法
jQueryにて特定のIDが存在するかチェックし分岐処理する方法

jQueryにて特定のIDが存在するかチェックし分岐処理したいというケースがあっ ...

JavaScriptにてテキストボックスにサジェスト機能を実装できる「autoComplete.js」の利用方法
JavaScriptにてテキストボックスにサジェスト機能を実装できる「autoComplete.js」の利用方法

以前にjQuery UIでテキストボックスにサジェスト(入力補助)機能を実装する ...

Leafletにアイコン(ボタン)を設置できる「Leaflet.EasyButton」プラグインの利用方法
Leafletにアイコン(ボタン)を設置できる「Leaflet.EasyButton」プラグインの利用方法

先日「leaflet-tag-filter-button」プラグインのCDN呼び ...

クロスドメイン環境のiframeで子フレームから親フレームに値を渡す方法
クロスドメイン環境のiframeで子フレームから親フレームに値を渡す方法

クロスドメインの環境でiframeを使用しており、子フレーム側から親フレーム側に ...