Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: ZAJDAN kdy 15. 12. 2016, 14:10:13

Název: JS- addEventListener on array
Přispěvatel: ZAJDAN kdy 15. 12. 2016, 14:10:13
Ahoj....
v Javascriptu mam pole, ale nedari se mi na prvky v poli aplikovat addEventListener:
var shelf = [];
      shelf[0] = svgElement.getElementById("shelf-1");
      shelf[1] = svgElement.getElementById("shelf-2");
      shelf[2] = svgElement.getElementById("shelf-3");

shelf.addEventListener("mousedown",function(){tab18[0].click()});


poradil by nekdo jak poštvat eventListener na vsechny prvky v poli?
Název: Re:JS- addEventListener on array
Přispěvatel: ZAJDAN kdy 15. 12. 2016, 14:49:28
SOLVED:

function setShelf() {
    for (var i = 0; i < shelf.length; i++) {
shelf[i].addEventListener("mousedown", function () {
    tab12[0].click()
  });
}
   }

setShelf();
Název: Re:JS- addEventListener on array
Přispěvatel: v kdy 15. 12. 2016, 14:51:06
co forEach?
Název: Re:JS- addEventListener on array
Přispěvatel: LP kdy 15. 12. 2016, 18:24:13
Ono už vůbec to naplnění pole bys měl řešit přes cyklus. A úplně nejlepší bude v případě, kdy máš stejnou událost pro X prvků, sáhnout po delegování. Rád bych ti vysvětlil princip, ale nemám na to teď čas, google napoví, není to zrovna jaderná fyzika.
Název: Re:JS- addEventListener on array
Přispěvatel: čumil kdy 15. 12. 2016, 18:42:17
A za domácí ukol uprav array prototyp tak aby tvoje původní řešení běželo správně
Název: Re:JS- addEventListener on array
Přispěvatel: . kdy 17. 12. 2016, 02:15:36
Citace od: čumil kdy 15. 12. 2016, 18:42:17
A za domácí ukol uprav array prototyp tak aby tvoje původní řešení běželo správně
Na prototypy se nešahá...
Název: Re:JS- addEventListener on array
Přispěvatel: ZAJDAN kdy 17. 12. 2016, 13:02:58
Citace od: v kdy 15. 12. 2016, 14:51:06
co forEach?

super...když použiju forEach, tak to fachá ..díky