Jquery воспроизводит звук и переходит на следующую страницу

Я пытаюсь понять, как это сделать, я хочу, чтобы зритель щелкнул одно из изображений, которое находится внутри поля apDiv, а затем через 3 секунды, когда звук закончится, загрузится следующая страница.

Это код, который переходит на следующую страницу, но не воспроизводит звук, если я удалю функцию setTimeout, звук будет воспроизводиться нормально.

Где я ошибся?

$(function(){
$('#apDiv1').click(

function(){$("#laugh")[0].play();},
function(){setTimeout(function(){window.location = 'page1.html';}, 3900); }
)
 });

person bunzbox    schedule 11.04.2013    source источник
comment
Извините за опоздание, я недавно прочитал ваш комментарий, добавил хороший пример, как добиться того, что вам нужно.   -  person Roko C. Buljan    schedule 11.04.2013


Ответы (2)


Вместо установки тайм-аута, который может привести к различным проблемам,
используйте audio прослушиватель событий ended !

РЕАЛЬНАЯ ДЕМО

$(function(){

    function playOnClick(){          
        var sound = $("#laugh")[0];     
        sound.addEventListener('ended', function() {        
           window.location = 'page1.html';        
        }, false);          
        sound.play();          
   }

   $('#apDiv1').click(function(){
       playOnClick();
   });

});
person Roko C. Buljan    schedule 11.04.2013
comment
@roXon ты наконец-то сделал это. - person Ejaz; 11.04.2013

Вы хотите написать этот код следующим образом

$(function(){
    $('#apDiv1').click(function(){
        $("#laugh")[0].play();
        setTimeout(function(){window.location = 'page1.html';}, 3900);
    });
});

вы, вероятно, могли бы использовать код здесь чтобы вы могли поменять звук, не меняя время на setTimeout

person Ejaz    schedule 11.04.2013
comment
Почему бы вам не добавить addEventListener "ended" для навигации? - person Roko C. Buljan; 11.04.2013
comment
это потому, что он может иногда хотеть воспроизвести звук без необходимости впоследствии перенаправлять пользователя - person Ejaz; 11.04.2013
comment
@Ejay, твой комментарий не имеет для меня смысла, он о воспроизведении звука и --› навигации. - person Roko C. Buljan; 11.04.2013
comment
@roXon все в порядке :) на самом деле теперь я думаю, что, возможно, неправильно прочитал ваш комментарий или неправильно понял то, что вы пытались передать. Не могли бы вы добавить ответ, описывающий ваш предпочтительный способ сделать это. Это будет вклад :) - person Ejaz; 11.04.2013
comment
Я новичок в Jquery и Html, поэтому большую часть времени я брутфорсирую коды, может быть, есть более простой способ, но сейчас это для меня, так как звук длился всего 3 секунды. roXon, как вы используете addEventlistener? - person bunzbox; 11.04.2013
comment
Ну вот, добавил пример. - person Roko C. Buljan; 11.04.2013