playPause()
определяется как свойство var player
, в playlist.js .
Ваш onclick onclick="playPause(); return false;"
не вызывает playPause, потому что не может найти функцию в глобальной области видимости. Вам нужно изменить свой клик на:
onclick="player.playPause(); return false;"
Обновление:
Проблема с этим обратным вызовом:
$("#play").fadeOut(200, function(){
if(this.status)
playEl.src = "img/pauseButton.png";
else
playEl.src = "img/playButton.png";
}).fadeIn(200);
this.status
не определено внутри этого обратного вызова, поскольку this
теперь ссылается на элемент #play. Чтобы решить эту проблему, вам нужно объявить var status = this.status
перед обратным вызовом и проверить if(status)
внутри обратного вызова.
Две другие вещи:
- * * * * * * * * * * * * * * * * * * * * * * * * * *
.fadeIn(200)
должен быть помещен внутри обратного вызова, в противном случае он будет запущен до завершения fadeOut (поэтому эффект затухания вообще отсутствует).
- Вам не нужно
var playEl = document.getElementById('play');
, так как вы используете jQuery для захвата элемента. Внутри обратного вызова ключевое слово this
уже ссылается на элемент.
Полный код должен быть:
var status = this.status = !this.status;
$("#play").fadeOut(200, function(){
if(status)
this.src = "img/pauseButton.png";
else
this.src = "img/playButton.png";
$(this).fadeIn(200);
});
Другое обновление:
В дополнение к вышеуказанному исправлению есть еще одна проблема. Похоже, на странице есть два элемента с id="play"
. На самом деле, весь # ipod2 дублируется. Я проверил исходный код, но его там нет, только в живом DOM. Если вы наберете $("#play").remove();
в консоли, вы увидите, что код замены изображения теперь работает. Однако вам нужно выяснить, где ipod2 клонируется в JS, и исправить это.