Autor Zpráva
user243
Profil
hoj,
chci spustit určitý track podle toho, na kterou písen kliknu v seznamu, ale nedaří se mi přenést proměnou;
můžete mi někdo poradit?
díky
var audio2 = document.getElementById('player3');
var track1 = document.getElementById('track1');
var track2 = document.getElementById('track2');

var track1_src = 'xxx.mp3';
var track2_src = "yyy.mp3";

var play_list = new Array(track1, track2);

for (var i=0; i < play_list.length; i++) {
  play_list[i].onclick = function() {
  var track = eval(play_list[i] + "_src");
  audio2.setAttribute('src', track);
  audio2.play();
    };
  }
Keeehi
Profil
Řekl bych že
eval("var track = " + play_list[i] + "_src");

Ale je to fuj, fuj, fuj. Proč to nemáte v poli?
user243
Profil
nepomohlo, pořád stejná odpověď:
Uncaught ReferenceError: undefined_src is not defined
udělal jsem tedy druhé pole kde jsou jednotlivé trackx_src a vložil jsem jej přímo do té anonymní funkce, ale hodnota je pořád undefined, nejspíš proto, že nezná hodnotu proměné i;
Radek9
Profil
user243:
Větší patlaninu jsem snad ještě neviděl.
<a href="xxx.mp3" id="track1">Track 1</a>
<a href="yyy.mp3" id="track2">Track 2</a>

<script>
var player = document.getElementById("player3"),
    count = 2,
    onClick = function () {
      player.src = this.href;
      player.play();
      return false;
    };
for (var i = 1; i <= count; ++i) {
  document.getElementById("track" + i).onclick = onClick;
}
</script>

S tím, že by se to dalo ještě upravit např. na getElementsByTagName, kdybys to měl v nějakém obalovacím prvku.
user243
Profil
věřím, že se někomu zkušenému z mého kódu navaluje; před play() jsem musel přidat ještě load(), ale jinak to šlape;
děkuji za pomoc;

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: