Таблица на моем сайте обновляется, например, каждые 10 секунд, проверяя наличие новых записей через AJAX.
Сейчас, при появлении новой записи показывается фон в строке таблицы (выделяет её).
Вопрос: как сделать так, чтобы при первом показе воспроизводился звук (например, щелчок). Звук должен быть исключительно в первый раз при появлении нового блока; в последующих обновлениях не должно быть никаких звуковых сигналов.
С помощью MutationObserver(); можно отслеживать изменения HTML-кода. (В данном случае появился новый ряд в таблице.)
var target = document.getElementById('some-id');
// создаём экземпляр MutationObserver
var observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
console.log(mutation.type);
audio.play();
});
});
// конфигурация нашего observer:
var config = { attributes: true, childList: true, characterData: true };
// передаём в качестве аргументов целевой элемент и его конфигурацию
observer.observe(target, config);
// по желанию позже можно остановить наблюдение
observer.disconnect();
setTimeout(function() {
element.setAttribute('data-text', 'whatever');
target.innerHTML=target.innerHTML;
}, 10000);
<div id="some-id"></div>
<audio id=audio src="sound.mp3"></audio>
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости