Domanda

Sto cercando di controllare un'istanza del JW FLV player giocatore che utilizza jquery.

Quello che voglio fare è avere una serie di collegamenti che quando cliccati caricano una playlist XML nel lettore.

Seguendo il tutorial qui Ho fatto funzionare le cose sostanzialmente come le voglio in termini di funzionalità, ma anche io posso vedere che è brutto come il peccato, poiché al momento le mie ancore sembrano così:

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

mentre questo ottiene un riferimento al giocatore

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

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

Quello che mi piacerebbe poter fare è far apparire le mie ancore in questo modo:

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

E quindi usa jquery per trovare gli ancoraggi con class = " media " ;, leggi il valore dell'attributo rel dell'elemento e quindi associa un evento click ad esso che attiva una funzione appropriata. Purtroppo questo va oltre i miei poteri estremamente magri.

Finora ho:

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

Che chiaramente non funziona. Qualcuno vuole aiutare un idiota / n00b?

Dovrei dire che davvero quello che voglio fare è imparare piuttosto che convincere qualcun altro a farlo, quindi se puoi spiegare un po 'le cose sarebbe fantastico.

È stato utile?

Soluzione

Quello che stai facendo mi sembra corretto, anche se non sono sicuro che la variabile "player" sia è definito lì; dipende dal contesto.

Quello che puoi fare è qualcosa di simile

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

Altri suggerimenti

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

Controlla l'annidamento della parentesi.

Altrimenti, dovrebbe funzionare. Ma & # 8216; rel & # 8217; non è un ottimo posto per inserire un URL, in quanto dovrebbe contenere solo token noti . Perché non inserirlo in & # 8216; href & # 8217; dove ti aspetteresti? Devi solo & # 8216; restituire false & # 8217; o & # 8216; preventDefault & # 8217; per interrompere il collegamento seguito da una leccata.

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

Ehm, qui non è del tutto superfluo? Perché non solo & # 8216; player = obj & # 8217 ;?

Ho lo stesso problema come te qui. E mi rendo conto che il primo che chiami create player usando

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

Non ricordo correttamente ma è come il codice sopra, dopo di che puoi usare var player = window.document [thePlayer.id] nella funzione playerReady (thePlayer) {} in jQuery come

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

player.sendEvent (" RIPRODUZIONE "); ..eccetera. Spero di poterne parlare e migliorare jQuery

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top