v2.5.2
Giriş yap

JavaScript .getAttribute'den datayı çekmemesi

nurullahkilic
389 defa görüntülendi

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)
      })    
  })
}


Cevap yaz
Cevaplar (0)
Henüz kimse cevap yazmadı. İlk cevap yazan sen ol!