javascript - dragging audio files in specific order html5 -


i have 4 broken parts of music file. want drag , drop music files files play in give order. idea user has drag audio files in correct order. able drag , drop music file, dont understand how set source of src of dragged audio.

here code :

<script>  $(document).ready(function(){      $("#gif").hide();      $("#play").click(function(){         $("#span1").hide();         $("#span2").hide();         $("#span3").hide();         $("#span4").hide();         $("#gif").show();        var 1 = document.getelementbyid("one");        var 2 = document.getelementbyid("two");        var 3 = document.getelementbyid("three");        var 4 = document.getelementbyid("four");         one.addeventlistener("ended", function () {            two.play();           });        two.addeventlistener("ended", function () {            three.play();           });        three.addeventlistener("ended", function () {            four.play();           });        one.play();     }); }); </script> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"> <script>     function allowdrop(ev) {         ev.preventdefault();     }      function drag(ev) {         ev.datatransfer.setdata("text", ev.target.id);     }      function drop(ev) {         ev.preventdefault();         var data = ev.datatransfer.getdata("text");         ev.target.appendchild(document.getelementbyid(data));         console.log(ev);     } </script> </head> <body>        <audio controls id="span1" class="bg-info" ondrop="drop(event)" ondragover="allowdrop(event)"> </audio>     <audio controls id="span2" class="bg-info" ondrop="drop(event)" ondragover="allowdrop(event)"> </audio>     <audio controls id="span3" class="bg-info" ondrop="drop(event)" ondragover="allowdrop(event)"> </audio>     <audio controls id="span4" class="bg-info" ondrop="drop(event)" ondragover="allowdrop(event)"> </audio>      <button id="play">play</button>     <br>          <audio draggable="true" ondragstart="drag(event)" id="one" controls>          <source src="poetsone.mp3"type="audio/ogg">             </audio>     <br>          <audio draggable="true" ondragstart="drag(event)" id="two" controls> <source src="poetstwo.mp3"             type="audio/ogg"> </audio>     <br>          <audio draggable="true" ondragstart="drag(event)" id="three" controls> <source src="poetsthree.mp3"             type="audio/ogg"> </audio>     <br>          <audio draggable="true" ondragstart="drag(event)" id="four" controls> <source src="poetsfour.mp3"             type="audio/ogg"></audio>     <br>      <input type="button" value="play again"         onclick="window.location.reload()">     <img id="gif" alt="playing" src="sam.gif" />  </body> 

it looks this. ca drag , drop below audio tags top

enter image description here

in drop function, @mouser said, path of source element. data variable contains id of audio element, have go source element since there src attribute need. function be:

function drop(ev) {                  ev.preventdefault();                 var data = ev.datatransfer.getdata("text");                  ev.target.src = document.getelementbyid(data).getelementsbytagname("source")[0].src; } 

the bad thing if have multiple source elements (for crossbrowser compability), pass wrong source url since element position hardcoded. suggest take this answer


Comments

Popular posts from this blog

PHP and MySQL WP -

android - InAppBilling registering BroadcastReceiver in AndroidManifest -

go - golang pprof for c library code -