jQuery滑块自动播放按钮不起作用

jQuery slider auto-play button didn't work

本文关键字:按钮 不起作用 自动播放 jQuery      更新时间:2023-09-26
$('#btn-autoPlay.playoff').on('click', playOn);
$('#btn-autoPlay.playon').on('click', playOff);
function playOn() {
    $('.playoff').text("Autoplay: ON");
    timeId = setInterval(function () {
        nextSlide();
    }, 3000);
    $('.playoff').addClass('playon').removeClass('playoff');
}
function playOff() {
    $('.playon').text("Autoplay: OFF");
    clearInterval(timeId);
    $('.playon').addClass('playoff').removeClass('playon');
}

详细信息:当我第一次点击按钮(#btn-autoplay.playoff(时,文本变为"自动播放:开",以及class(.playoff(更改为class(.playon(。但是当我第二次单击按钮时,按钮文本没有改变,类仍然是".playon"。这段代码有什么问题?

您可能需要为动态生成的项目委派事件。

body在这里是静态父级,事件是在静态父级的帮助下观看的。如果某些 HTML 被 JavaScript 动态更改,则连接的事件往往会消失,因为它们不是相同的旧 DOM 元素。

$("body").on('click', '#btn-autoPlay.playoff', playOn);
$("body").on('click', '#btn-autoPlay.playon', playOff);
因此,将

事件附加到近乎静态的父级,并将其委托给正确的父级,将对您有用。

请尝试:

$(document).on('click', '#btn-autoPlay.playoff', playOn);
$(document).on('click', '#btn-autoPlay.playon', playOff);