Sono nuovo qui (e nuovo in JavaScript), quindi scusate le mie domande super base. Ho una pagina HTML con immagini diverse che condividono tutte una classe su di essa. Usando getElementsByClassName, ottengo un array. Voglio aggiungere un listener di eventi a ciascuna cella nell'array utilizzando la funzione .map().Javascript .map() non è una funzione
Questo è quello che ho:
window.onload = function(){
var allImgs = document.getElementsByClassName("pft");
var newImgs = allImgs.map(
function(arrayCell){
return arrayCell.addEventListener("mouseover, functionName");
}
);
};
Ciò mantiene che mostra l'errore "allImgs.map non è una funzione" anche quando cambio la funzione interna a qualcosa che non include il listener di eventi.
Ho un'altra versione di questo codice in cui ho appena fatto un ciclo attraverso le celle dell'array all'interno di window.onload e aggiungo il listener di eventi a ciascuno di essi in quel modo e funziona. Perché la funzione .map() non funziona? Non può essere usato in window.onload?
http://stackoverflow.com/questions/222841/most-efficient-way-to-convert-an-htmlcollection-to-an-array – baao
Questo ha molto più senso ora, grazie. – JSn00b
@ Flawyte Eek, non funziona ancora per me. Probabilmente sto trascurando qualcosa di super-base. Ecco cosa ho ottenuto: 'window.onload = function() { \t var allImgs = document.getElementsByClassName (" pft "); \t var newImgs = [] .slice.call (allImgs); \t console.log (newImgs.typeof); \t funzione newImgs.map ( \t \t \t (arrayCell) { \t \t \t \t ritorno arrayCell.addEventListener ("mouseover, flipOver"); \t \t \t} \t); }; ' – JSn00b