Полагаю, вам нужен кто-то, кто скажет вам, почему ваши события не запускаются при клике; Если вам нужна дополнительная помощь, пожалуйста, дайте мне знать.
Функции, которые вы вызываете (plusItem), не определяются, когда вы нажимаете стрелку, потому что вы определяете их в обработчике "DOMContentLoaded", который не запускается.
Я бы переместил объявления функций за пределы обработчика "DOMContentLoaded". Смотрите фрагмент ниже;
var itemIndex = 1;
document.addEventListener("DOMContentLoaded", function(event) {
showItem(itemIndex);
},false);
// Next/previous controls
function plusItem(n) {
console.log('plusitem')
showItem(itemIndex += n);
}
// Thumbnail image controls
function currentItem(n) {
showItem(itemIndex = n);
}
function showItem(n) {
var item = document.getElementsByClassName("carousel-item");
if (n > item.length) {itemIndex = 1}
if (n < 1) {itemIndex = item.length}
for (var i = 0; i < item.length; i++) {
item[i].style.display = "none";
}
item[itemIndex-1].style.display = "block";
}
Что касается того, почему ваш обработчик "DOMContentLoaded" не запускается, я считаю, что он выполняется слишком рано для сценария нижнего колонтитула, чтобы обнаружить загрузку страницы. Если ваш скрипт находится в нижнем колонтитуле, вам не нужно определять загрузку страницы для этого. В качестве альтернативы посмотрите на загрузку окна: https://developer.mozilla.org/en-US/docs/Web/API/Window/load_event
Для дальнейшего использования, это отличная идея, чтобы увидеть, какую обратную связь дает вам консоль при разработке javascript, так как в этом случае вы увидите «plusItem не определен», что даст вам подсказку. Использование ведения журнала консоли ( console.log ("abc") ) также очень полезно, чтобы увидеть, какие части вашего скрипта выполняются.