0

私は次のシナリオを持っています..

ユーザーが私のウェブサイトにアクセスすると、サーバーからいくつかのオーディオ ファイルが表示されます。ユーザーが 1 つのリンクをクリックすると、最終的に jquery 関数が実行され、埋め込みオブジェクトのソースが選択したファイルに変更されます。

私のスクリプトは次のとおりです。

<script type="text/javascript">
    $("#song").click(function(){
        var src=$(this).attr("href");
        var plyr=document.getElementById("mplayer");
        var clone=plyr.cloneNode(true);
        clone.setAttribute('src',src);
        plyr.parentNode.replaceChild(clone,plyr)
    });
</script>

オーディオファイルを選択するためのリンク。

  <a href="resources/songs/xx21.mp3" id="song">

xx21

そしてオブジェクトは

<div id="music">
    <embed type="audio/mpeg" src="#" name="plugin" height="100%" width="100%" id="mplayer">
</div>

私に何が起こっているかというと、リンクをクリックしたときです。曲は新しいページで再生されます。内にオブジェクトが埋め込まれた曲を再生する必要がありますdiv music

4

2 に答える 2

1

曲をロードするリンクが複数ある場合は、ID の代わりにクラスを使用してください。各 ID はページ上で一意であるはずです。次に、これを実行して、埋め込みの src を、クリックされたリンクの href に変更できます。

$('.song').on('click', function(e) {
    $('#mplayer').attr('src', $(this).attr('href'));
    e.preventDefault();
});

e.preventDefault()ブラウザがファイルの場所に移動しようとするのを防ぎます。

于 2013-02-19T10:38:33.433 に答える
0

要素のデフォルトの実行を防ぐ必要があります。リンクのデフォルトの実行は - リンクを開く。

できること:

または<a href="link-to-sound" onClick="return false;">_

<script type="text/javascript">
$(".song").click(function(event){
event.preventDefault();
var src=$(this).attr("href");
var plyr=document.getElementById("mplayer");
var clone=plyr.cloneNode(true);
clone.setAttribute('src',src);
plyr.parentNode.replaceChild(clone,plyr)
});
</script>

event.preventDefault()を追加する必要があります

于 2013-02-19T10:41:10.630 に答える