Я нашел очень простую функцию javascript для слайд-шоу (here). Он отлично работает, но я хочу что-то изменить о кнопках управления. Прямо сейчас, кнопка воспроизведения/паузы отображается это собственное имя, например:javascript: remove/add class function
<button class="controls" id="pause">Pause</button>
Javascript установлен для запуска функции под названием pauseSlideshow
при определенных обстоятельствах, которые не только приостанавливает/возобновляет слайд-шоу, но и изменяет отображаемое содержание кнопки с «пауза», чтобы «играть»:
var playing = true;
var pauseButton = document.getElementById('pause');
function pauseSlideshow() {
pauseButton.innerHTML = 'Play';
playing = false;
clearInterval(slideInterval);
}
теперь, что я хочу сделать, это оставить кнопку пустым и работать ширина фоновых изображений, и делать, что я планировал сделать простой класс swap всякий раз, когда срабатывает функция pauseSlideshow
. Таким образом, первый я добавил класс с именем pause
к кнопке с нужным фоновым изображением набор в стиле:
<button class="controls pause" id="pause"></button>
и рядом я собирался сделать что-то вроде этого:
var playing = true;
var pauseButton = document.getElementById('pause');
function pauseSlideshow() {
pauseButton.removeClass('pause');
pauseButton.addClass('play');
playing = false;
clearInterval(slideInterval);
}
(где play
это другой класс с другим фоновым изображением). Достаточно сказать, как только pauseSlideshow
запускается, функция сработает. Я пишу что-то неправильно или не в том месте, но я знаю, что этот подход жизнеспособен.
, пожалуйста, может кто-нибудь указать на ошибку?
EDIT:
Use $(pauseButton).removeClass('pause'); and $(pauseButton).addClass('play');. addClass and removeCalss are jQuery methods. And you need to add jQuery reference too. – user3698428
document.getElementById("pause") does not return a jQuery element. .removeClass() and .addClass() are jQuery functions. So basically you are trying to call jQuery functions on a non-jQuery element and it's throwing an error. Change it to var pauseButton = $("#pause"); or $(pauseButton).removeClass(...); $(pauseButton).addClass(...);
при попытке так или иначе, консоль возвращается: Uncaught ReferenceError: $ не определен
Используйте $ (pauseButton) .removeClass ('pause'); и $ (pauseButton) .addClass ('play') ;. addClass и removeCalss - это методы jQuery. И вам также нужно добавить ссылку jQuery. – Ram
'document.getElementById (" pause ")' не возвращает элемент jQuery. '.removeClass()' и '.addClass()' являются функциями jQuery. Таким образом, в основном вы пытаетесь вызвать jQuery-функции для элемента, отличного от jQuery, и это вызывает ошибку. Измените его на 'var pauseButton = $ (" # pause ");' или '$ (pauseButton) .removeClass (...); $ (pauseButton) .addClass (...); ' – mhodges
Вы [проверили консоль на наличие ошибок?] (http://stackoverflow.com/documentation/javascript/185/hello-world/714/using-console-log # t = 201610171959284503658) Вы пытаетесь использовать методы jQuery для регулярных элементов. –