2
4

4 に答える 4

1

これを試して。

  $('#menu li a').click(function (e) {
       e.preventDefault();
       var sound = $("#audio");
       sound.get(0).play();

       setTimeout(function () {
           window.location.href = $(this).attr('href');
       }, 3000);

   });
于 2013-02-21T17:00:49.307 に答える
1

必要なものは次のとおりです...これによりオーディオが再生され、オーディオの再生が終了すると、ターゲットの場所に移動します...

HTML

<audio id="audio" hidden>
    <source src="./sound/sound.mp3" type="audio/mpeg">
</audio>

<div id="menu">
    <li>
        <a href="http://www.google.com">Click to play...</a>
    </li>
</div>

jQuery

var target;

function checkAudio() {
    if($("#audio")[0].paused) {
        window.location.href  = target;
    } else {
        setTimeout(checkAudio, 1000);
    }
}

$('#menu li a').click(function(e) {
    e.preventDefault();

    target = $(this).attr('href');

    console.log("Let's play");

    var sound = $("#audio");
    sound.get(0).play();

    setTimeout(checkAudio, 1000);
});

コードは毎秒オーディオの状態をチェックします。タイムアウトの値を変更して、チェックの頻度を減らすことができます。

于 2013-02-21T17:31:36.553 に答える
0

コントロールが他のページに移動する前に、ページを停止する必要があります。そのためには、falseを返し(ページを停止するため)、trueを返します(コントロールをシフトするため)。以下のコードは醜いかもしれませんが、私はそれがあなたのために働くと思います

<script>
   function playsound()
   {
     return false;
     var sound = $("#audio");
     if(sound.get(0).play())
       return true;

   }
</script>

とhtmlで

   <a href="page.html" onclick="return playsound();">element</a>
于 2013-02-21T17:11:34.503 に答える
0

遅延を追加して、このように実行したいページに移動する必要があります。

$('#menu li a').click(function(e) {
          var destination = $(this).attr('href');
             e.preventDefault();
             var sound = $("#audio");
           sound.get(0).play();
 setTimeout(function() { window.location.href = destination; }, 1000);
    });

音の時間や待ちたい時間を設定するだけです。

于 2013-02-21T17:03:43.387 に答える