2012-03-26 9 views
4

私は、セレクタで選択したオプションに応じて変化するダイナミックなjplayerを作成するために1週間努力してきました。他のスタックオーバーフローポストは非常に役に立ちましたので、私はこれを理解することができれば幸いです。他の人が行った事例へのリンクもありがたいです。関連のjavascriptは以下の通りです:私は私の問題を考え出しダイナミックjPlayer

jQuery(document).ready(function($){ 

    $(function() { 
     var pinyinTone=null; 
     var toneSelect=null; 
     var pinyinSound=null; 
     $("#jquery_jplayer").jPlayer({ 
      ready: function() { 
      }, 
      swfPath: "/sites/all/libraries/jplayer/js", 
      supplied: "mp3" 
     }) 
     $("#jquery_jplayer").jPlayer("setMedia", { 
      mp3: '/sites/default/files/pinyinSound/' + pinyinTone + '.mp3', 
      wav: '/sites/default/files/pinyinSound/' + pinyinTone + '.wav' 
     }); 
    }; 

    $("select#pinyinSound").change(function(){ 
     toneSelect=1; 
     $('#toneSelectDiv').show(); 
     pinyinSound=$(this).val(); 
     $.ajax({ 
      url: "/HBCAppFiles/get_list.php", 
      data: { 
       pinyinSound: $("select#pinyinSound").val() 
      }, 
      dataType:"json", 
      success:function(j){ 
       var options = ''; 
       for (var i = 0; i < j.length; i++) { 
        options += '<option value="' + j[i].optionValue + '">' + j[i].optionDisplay + '</option>'; 
       } 
       $("select#toneSelect").html(options); 
      } 
     }) 
     pinyinTone=pinyinSound + toneSelect; 
     processPinyinVars(pinyinTone); 
    }); 

    $("img#pinyinSliderPlayButton").click(function(){ 
     $('#inner').animate({width: 250}, function(){ $(this).width(0)}); 
     $("#jquery_jplayer").jPlayer("play"); 
     return false; 
    }); 

})(jQuery); 
+0

コードをインデントできますか? – Reinard

+0

私のコードが4スペース以上インデントされたときにスタックオーバーフローが発生しました... –

答えて

3

...私は私の問題について異なる道を行くことに決めた、とLOT迅速にソリューションに来ました。私はjqueryを使ってステートメントの選択された要素にアクセスする必要があることに気付きました。そのためには、find関数を使う必要がありました。私が思いついたのはこれでした:

$("#trackSelect").change(function(e) { 
     my_trackName.text($(this).val()); 
     my_jPlayer.jPlayer("setMedia", { 
      mp3: $(this).find(':selected').attr("href") 
     }); 
    });