Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

leojuoli

Chamar uma função no escopo de outra função

Recommended Posts

Oi pessoal, estou comum código aqui que basicamente é um player e no código eu preciso chamar uma função que está dentro de outra função. Exemplo do código:

  $.extend(MediaElementPlayer.prototype, {
    playTrack: function(track) {
      var t = this;
      t.pause();
      t.setSrc(track.attr('data-url'));
      t.load();
      t.play();
      track.addClass('current').siblings().removeClass('current');
        $('.player h2').text(track.attr('title'));
    },
    playTrackURL: function(url) {
      var t = this;
      var tracks = t.layers.find('.mejs-playlist > ul > li');
      var track = tracks.filter('[data-url="'+url+'"]');
      t.playTrack(track);
    }
  });

Eu preciso executar a função playTrack passando o parametro, como faço?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não tem, é uma biblioteca bem nova. Mas eu resolvi copiando a função e executando ela no escopo que eu queria, esse código acima é parte de um código de um player HTML5 e eu estava implementando uma playlist dinâmica nele. Executar a função playtrack no escopo que eu queria seria:

                    $('audio')[0].player.pause();
                    $('audio')[0].player.setSrc($(this).attr('data-url'));
                    $('audio')[0].player.load();
                    $('audio')[0].player.play();
                    $(this).addClass('current').siblings().removeClass('current');
                    $('.player h2').text($(this).attr('title'));

Obviamente isso é uma solução particular, mas resolveu.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Provavelmente.. seria algo como:

 

var mep = new MediaElementPlayer();
mep.playTrackURL('http://...');
Mas ainda acho um pouco esquisito ele fazer um $.extend de um prototype com um objeto literal.. não entendi bem o padrão que essa lib está tentando seguir.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.