2012-11-22 47 views
0

我有这个加载源的音乐文件与jQuery

<div class="sc_menu"> 
    <a href="#" m4v="/audio/01_Tribu.m4a" oga="/audio/01_Tribu.ogg" mp3="/audio/01_Tribu.mp3"><img src="/artistes/jean-luc_gergonne/jlgergonne_thumb.jpg" alt="/artistes/jean-luc_gergonne/jlgergonne.jpg"></a> 
    <a href="#" m4v="/artistes/diez/diez_demo.m4a" oga="/artistes/diez/diez_demo.ogg" mp3="/artistes/diez/diez_demo.mp3"><img src="/artistes/diez/diez_130x195.jpeg" alt="/artistes/diez/diez.jpeg"></a> 
</div> 

然后在同一页上,我有:我的javascript的

<div class="zen"> 
    <span class="player"></span> 
    <span class="circle"></span> 
    <span class="progress"></span> 
    <span class="buffer"></span> 
    <span class="drag"></span> 
    <div class="button"> 
    <span class="icon play"></span> 
    <span class="icon pause"></span> 
    </div> 
</div> 

部分如下:

this.sliderMenu = function() { 

    //and loads the jPlayer with the sound files for the Artist 
    $list.find('.sc_menu img').bind('click',function(){ 
     var $this = $(this); 
     var music; 
     title = $this.text(); 
     mp = $this.attr("mp3"); 
     oga = $this.attr("oga"); 
     m4a = $this.attr("m4a"); 
     m4v = $this.attr("m4v"); 
     ogv = $this.attr("ogv"); 
     webmv = $this.attr("webmv"); 
     poster = $this.attr("poster"); 
     music = { 
      title: title, 
      mp: mp, 
      oga: oga, 
     } 
     console.log(music); 
     self.tsunamiPlayer(music); 

     //clicking on a thumb, replaces the large image 
     $('<img class="st_preview"/>').load(function(){ 
     var $this = $(this); 

     var $currImage = $('#st_main').children('img:first'); 
     $this.insertBefore($currImage); 



    // jPlayer 
    this.tsunamiPlayer = function(music) { 
    ///init screen 
    var player = $(".zen .player"); 
    var no_of_tracks = $(".sc_menu a").length; 
    player.jPlayer({ 
     ready: function() { 
     $(this).jPlayer("setMedia", { 
      m4a: m4a, 
      mp3: mp, 
      oga: oga 
     }); 
     }, 
     swfPath: "/js/jplayer/Jplayer.swf", 
     supplied: "m4a, mp3, oga"   
    }); 

当我点击'a'链接img时,我想将属性加载到jPlayer实例中,但是只有当我console.log(音乐)

这样做的正确方法是什么?

回答

0

$(this)您的处理程序中的变量是指img元素,而你的代码假装它是a元素,因此要修复它取代你的下面一行:

$list.find('.sc_menu img').bind('click',function(){ 

这一个:

$list.find('.sc_menu a').bind('click',function(e){ 
    e.preventDefault(); 
+0

谢谢,我错过了,虽然我想添加一个事件,以便一旦用户点击图像,我想加载一个新的tsuanmiPlayer()与正确的属性。但我认为我的代码需要重新考虑,因为当我更改图像时,jPlayer仍然保留旧的歌曲列表并且不加载点击的项目! – khinester