Измените ваши имена еще.
Когда вы в первый раз вызываете функцию, это действительно функция. Но что делает эта функция? Среди прочего, это:
kareoke = document.getElementById("kareoke");
В области окна это переписывает переменную kareoke
чем-то другим, чем-то, что не является функцией. Поэтому любая будущая попытка вызвать его приведет к ошибке.
Не используйте повторно те же имена переменных. (По крайней мере, не в смешанных областях и не в такой маленькой программе.) И, как хорошая практика, сохраняйте область видимости локальной для функции, объявляя переменные либо var
, let
, либо const
. Примерно так:
function kareoke() {
let mainMusic = document.getElementById("main-music");
let kareokeElement = document.getElementById("kareoke");
//...
}