Question

J'essaie de contrôler une instance du lecteur JW FLV joueur utilisant jquery.

Ce que je veux faire, c'est avoir une série de liens qui, lorsqu'on clique dessus, chargent une liste de lecture XML dans le lecteur.

En suivant le didacticiel ici J'ai les choses qui fonctionnent comme je les veux en termes de fonctionnalités, mais même si je vois que c'est moche comme péché, mes ancres ressemblent à ceci:

<a class="media" href="#"
onclick="player.sendEvent('STOP');
player.sendEvent('LOAD',
'path/to/playlist.xml');
return false;">load playlist</a>

alors que cela donne une référence au joueur

var player = null;
function playerReady(obj)
{
  player = gid(obj.id);
};

function gid(name)
{
  return document.getElementById(name);
};

Ce que j'aimerais pouvoir faire, c'est que mes ancres ressemblent à ceci:

<a class="media" href="#" rel="path/to/playlist.xml">load playlist</a>

Ensuite, utilisez jquery pour rechercher les ancres avec class = "media", lisez la valeur de l'attribut rel de l'élément, puis liez-y un événement de clic déclenchant une fonction appropriée. Hélas, cela dépasse mes extrêmement faibles pouvoirs.

Jusqu'à présent, j'ai:

$('a.media').click(function()
  {
    playlist = $(this).attr("rel");
    player.sendEvent('LOAD', playlist
  }
);

Ce qui ne fonctionne clairement pas. Quelqu'un veut-il aider un idiot / n00b?

Je dois dire que ce que je veux vraiment faire, c'est apprendre plutôt que de demander à quelqu'un d'autre de le faire. Si vous pouviez expliquer un truc, ce serait vraiment génial.

Était-ce utile?

La solution

Ce que vous faites me semble correct, même si je ne suis pas sûr que la variable " joueur " est défini ici; cela dépend du contexte.

Ce que vous pouvez faire est quelque chose comme

$('a.media').click(function () {
  var player = $("#player-id");
  if(player.length == 1){
    player = player[0];
    var playlist = $(this).attr("rel");
    player.sendEvent('LOAD', playlist);
  }
});

Autres conseils

player.sendEvent('LOAD', playlist
}
);

Vérifiez l’imbrication des crochets.

Sinon, devrait fonctionner. Mais & # 8216; rel & # 8217; Ce n’est pas un très bon endroit pour mettre une URL, car elle est supposée contenir jetons connus . Pourquoi ne pas le mettre dans & # 8216; href & # 8217; Où vous attendez-vous? Il vous suffit de & # 8216; renvoyer false & # 8217; ou & # 8216; preventDefault & # 8217; pour arrêter le lien après un coup de langue.

function playerReady(obj)
{
    player = gid(obj.id);
};
function gid(name)
{
    return document.getElementById(name);
};

Euh, le camp n'est-il pas complètement superflu ici? Pourquoi ne pas simplement "player = obj"?

J'ai le même problème que vous ici. Et je me rends compte que le premier que vous appelez créer un lecteur en utilisant

var newplayer = SWFobject(width,height,playerid,version,background-color);
newplayer.addVarible(...);
newplayer.write(htmltaghold place for this player);

Je ne me souviens pas correctement, mais il ressemble au code ci-dessus. Vous pouvez ensuite utiliser var player = window.document [thePlayer.id] dans la fonction playerReady (thePlayer) {} dans jQuery. comme

jQuery("div#id").click(function(){
   your code
   player.sendEvent("NEXT");
});

player.sendEvent ("PLAY"); ..etc. J'espère que nous pourrons en parler et améliorer jQuery

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top