2012-11-22 44 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