こんにちは。ikuraです。
最近、寒くなってきたので1日に11時間も布団にもぐってしまうようになってしまいました。(夏は8時間程度)
寒いのが好きではないので早く4月にならないかと思っております
余談はさておき、仕事でJavaScriptを触る機会がありましてオンライン画面のリンクを無効化する処理を書きました。
ネットで「JavaScript aタグリンク無効化」と調べると色々実装方法が出てきたのですが、動的にリンクを無効化する処理がネット上にあまりなかったため記事を書こうと思い立ちました。
#pointerEventsの概要
私はaタグリンクを無効化するのに、「pointerEvents」を使いました。
poiterEventsの詳しい内容は、以下のリンクをご参照ください。
Pointer events - Web API | MDN
pointer-eventsの本当の意味 - Qiita
「pointer-events」は、基本的にcssのプロパティとして使用されているためJavaScriptではあまり使われないようです。。
#pointerEventsの実装方法
1.「getElementsByTagName('a')」でタグ名"a"を取得する。
2.取得したaタグの件数文for分を回す。
3.「.style.pointerEvents = 'none';」でaタグ要素を無効化する。
という流れになります。
aタグ要素を有効化する場合は、「auto」を使用します。
<html lang="en">
<head>
<script src="a_index.js"></script>
</head>
<body>
<a href="https://qiita.com/">Qiitaへ1</a>
<a href="https://qiita.com/">Qiitaへ2</a>
<a href="https://qiita.com/">Qiitaへ3</a>
<a href="https://qiita.com/">Qiitaへ4</a>
<a href="https://qiita.com/">Qiitaへ5</a>
<input type="button" value="ここ押すとリンクが無効化される" onclick="invalidLink()">
</body>
</html>
function invalidLink() {
let elements = document.getElementsByTagName('a');
for (let i = 0; i < elements.length; i++) {
elements[i].style.pointerEvents = 'none';
}
}