勉強したことのメモ

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

  関連記事

jQueryプラグインのDateTimePickerで年月日と時間のピッカーを実装する方法
jQueryプラグインのDateTimePickerで年月日と時間のピッカーを実装する方法

jQueryで年月日と時間を選択できるピッカーを導入したかった。以前にboots ...

JavaScriptで連想配列を数値の降順でソートする方法
JavaScriptで連想配列を数値の降順でソートする方法

JavaScriptで連想配列を数値の降順でソートしたかったんだけど、色々調べて ...

バニラJavaScriptでXML形式データの取り扱いとJSON形式への変換方法
バニラJavaScriptでXML形式データの取り扱いとJSON形式への変換方法

JavaScriptで外部APIにリクエストし、レスポンスのXML形式データを取 ...

Gif画像に再生ボタンを設置し、ユーザーの操作により再生⇔停止が行える「gifffer」ライブラリの利用方法
Gif画像に再生ボタンを設置し、ユーザーの操作により再生⇔停止が行える「gifffer」ライブラリの利用方法

あるページにGif画像を設置し、当該画像が表示されても自動再生させず、再生ボタン ...

jQueryで後から追加した要素にhasClass / addClass / removeClassを使用した際の挙動
jQueryで後から追加した要素にhasClass / addClass / removeClassを使用した際の挙動

jQueryで後から追加した要素にhasClass / addClass / r ...