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

javascript - generate date range base on integers -

PHP and MySQL WP -