Всех приветствую. Хочу проверить, содан ли "new Audio()" и записан ли в переменную. Если еще не создан - создать его и показать блок с аудио-плеером (т.е. при открытии страницы с аудио проигрыватель у меня будет скрытым, и при первом клике на любую аудио этот блок у меня откроется и тут же создастся аудио()).
Хотел я это сделать следующим образом:
$("#playPause").click(function(){
if(typeof audio === "undefined"){
$("#audioPlayer").show(100);
var audio = new Audio();
audio.autoplay = false;
audio.loop = false;
audio.volume = 0.5;
audio.src = '001.mp3';
$(this).text("\u23f8");
audio.play();
}else{
if($(this).text() == "\u25b6") {
$(this).text("\u23f8");
audio.play();
} else {
$(this).text("\u25b6");
audio.pause();
}
}
});
И почему-то у меня и после выполнения первого условия (ведь в начале (до первого клика) переменной "audio" ещё нет), при втором клике всё равно выполняется первое условие, хотя и переменная "audio" уже создана, проигрывается аудио.
Почему так происходит? Читал я, что с проверкой наличия переменной в яваскрипте всё сложнее, чем в PHP, в котором просто написал if(isset($audio)){} - и всё правильно понимается кодом. А в Яваскрипте есть какие-то нюансы...