Bagaimana cara agar kode di bawah ini tidak menangkap elemen <a> dengan atribut target="blank"? Karena location.href = link.href; terbuka di kartu yang sama (hanya tautan dengan target="blank" yang harus dibuka di kartu baru tanpa animasi).

document.addEventListener('click', function(event) {
if (event.target.tagName !== "A" || !event.target.href) return;
event.preventDefault();
var link = event.target;
document.body.style.opacity = 0;
document.body.addEventListener("transitionend", function() {
location.href = link.href;
});
});

Jika diperlukan klarifikasi lebih lanjut, silakan komentar di bawah!

0
MAJO 10 Januari 2020, 23:12

2 jawaban

Jawaban Terbaik

Centang event.target.target.

document.addEventListener('click', function(event) {
  if (event.target.tagName !== "A" || !event.target.href || event.target.target == "_blank") return;
  event.preventDefault();
  var link = event.target;
  document.body.style.opacity = 0;
  document.body.addEventListener("transitionend", function() {
    location.href = link.href;
  });
});
1
Barmar 10 Januari 2020, 20:18

Cukup gunakan kondisi if di bawah ini:

event.target.getAttribute('target') !== blank);

Semoga berhasil.

1
Rastalamm 10 Januari 2020, 20:21