JavaScript .getAttribute'den datayı çekmemesi
Kullanıcının takipçilerinin görünmesi için açılan bir popup yapmaya çalışıyorum. Aşağıdaki kodda göründüğü gibi targetin attributeden gelen değere göre apiden verileri çekerek işliyorum. Fakat bazen ilk tıklamada attribute'ı alamadığı için apiden veriyi alamıyor. Bu sorunu nasıl halledebilirim?
Ekleme: Attribute'i almadığını nerden anladın sorun belki de başkadır diyecek olursanız. Network kısmında istek attığı adresin '/web/api/null?query=null' olarak gözüktüğünü farkettim
const followPopups = document.getElementsByClassName("followPopups")
for (var i=0; followPopups.length > i; i++){
followPopups[i].addEventListener('click',function (e) {
const user_id = e.target.getAttribute("data-id")
const query = e.target.getAttribute("data-query")
fetch(`/web/api/${user_id}?query=${query}`)
.then(data=>data.json())
.then(result=>{
openPopup("popup-container-follow")
followContainer.innerHTML = `<div class="lds-ellipsis"><div></div><div></div><div></div><div></div></div>`
var dataHTML = ""
result.forEach(user => {
dataHTML += `
<div class="follow-content">
<div class="follow-left-side">
<a href="/@${user.username}">
<img src="${user.profile_pic}" alt="" />
</a>
<div class="follow-user">
<a href="/@${user.username}"><h3>${user.fullname}</h3> <h5>@${user.username}</h5></a>
</div>
</div>
`
if(session_username==user.username){
dataHTML += `
<div class="follow-right-side">
</div>
</div>
`
}else {
if (user.is_following_viewer){
dataHTML += `
<div class="follow-right-side">
<a href="nojavascript...;" data-id="${user.id}" class="btn-primary btn-follow"><i class='bx bxs-user-minus' ></i> TAKİPTESİN</a>
</div>
</div>
`
} else {
dataHTML += `
<div class="follow-right-side">
<a href="nojavascript...;" data-id="${user.id}" class="btn-success btn-follow"><i class='bx bxs-user-plus' ></i> TAKİP ET</a>
</div>
</div>
`
}
}
});
followContainer.innerHTML = dataHTML
const btnFollows = followContainer.getElementsByClassName("btn-follow")
for (var i=0; btnFollows.length > i; i++){
btnFollows[i].addEventListener('click',follow)
}
})
.catch(err=>{
console.log(err)
})
})
}
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (0)
Henüz kimse cevap yazmadı. İlk cevap yazan sen ol!