2017-07-26 3 views
-1

Ich habe dieses Skript, das ich ausgeführt habe. Es zeigt, dass die Eigenschaft getAttribute in Zeile 164 nicht definiert ist. Ich verstehe nicht warum. Ich habe versucht, die verschiedenen Funktions Rückzieher fordert die Pause zu sehen, aber ich mag es nichtWarum ist getAttribute nicht definiert?

Look for Album.js file

+0

gibt Können Sie versuchen, 'console.log (songItem)' zwischen Linie 163 und 164 und sagen Sie mir, wenn Sie einen Fehler haben angezeigt – Ivan

+0

@Ivan Seconded. Die logischste Erklärung ist, dass 'songItem'' undefiniert' oder vom falschen Typ ist, wie 'false'. –

+0

Enthält das Steuerelement, in dem Sie dieses Attribut suchen, das Attribut? Check-in HTML-Quelle. – Amit

Antwort

0

Ihr mouseleave Ereignis-Listener sehen ist immer die event.target.className von album-view-song-item haben zu gehen, weil songRows als document.getElementsByClassName("album-view-song-item"); definiert

wenn daher die getSongItem(event.target) im Hörer aufgerufen:

songRows[i].addEventListener("mouseleave", function(event) { 
    var songItem = getSongItem(event.target); 
    var songItemNumber = songItem.getAttribute("data-song-number"); 

    if (songItemNumber !== currentlyPlayingSong){ 
     songItem.innerHTML = songItemNumber; 
    } 
}); 

T er element.className ist album-view-song-item. Wenn Sie diese in Ihre Funktion übergeben wird:

var getSongItem = function(element){ 
    switch(element.className){ 
     case "album-song-button": 
     case "ion-play": 
     case "ion-pause": 
      return findParentByClassName(element, "song-item-number"); 
     case "song-item-title": 
     case "song-item-duration": 
      return findParentByClassName(element, "album-view-song-item").querySelector(".song-item-number"); 
     case "song-item-number": 
      return element; 
     default: 
      return; 
    } 
}; 

Dies fällt auf den default Fall durch, die undefiniert zurückgibt. Der Aufruf getAttribute auf undefiniert, wie Sie sehen können, können Sie den Fehler Cannot read property 'getAttribute' of undefined