Javascript 等待返回addeventlistener can';不能为空
commerce shop和我动态渲染一个站点,其中包含详细信息产品我想制作Corosel,但当我尝试添加第二个等待返回时不可能,我尝试了他们的方法,但我在控制台中遇到此错误“addEvent Listener不能为null”Javascript 等待返回addeventlistener can';不能为空,javascript,async-await,return,Javascript,Async Await,Return,commerce shop和我动态渲染一个站点,其中包含详细信息产品我想制作Corosel,但当我尝试添加第二个等待返回时不可能,我尝试了他们的方法,但我在控制台中遇到此错误“addEvent Listener不能为null” 您能给我一些建议吗?我想怎么做?您需要等到第一次等待给出响应后再应用第二次等待。您的错误是,您正在尝试在事件呈现到页面之前绑定事件。没有看到ProductScreen render和代码之间的相互关系,这是一个猜测游戏。可能相关:wait是继续代码之前等待的内容。可能尝试
您能给我一些建议吗?我想怎么做?您需要等到第一次等待给出响应后再应用第二次等待。您的错误是,您正在尝试在事件呈现到页面之前绑定事件。没有看到ProductScreen render和代码之间的相互关系,这是一个猜测游戏。可能相关:
wait
是继续代码之前等待的内容。可能尝试在返回HTML@Michal Widawski后添加EventListeners
const ProductScreen = {
render: async () => {
const request = await parseRequestUrl();
const product = await getProduct(request.id);
if (product.error) {
return `<div>${product.error}</div>`;
}
return `
<div class="carousel">
<div class="carousel__item carousel__item--visible">
<img src="${product.image}" />
</div>
<div class="carousel__item">
<img src="${product.image2}" />
</div>
<div class="carousel__item">
<img src="${product.image3}" />
</div>
<div class="carousel__actions">
<button id="carousel__button--prev" aria-label="Previous slide"><</button>
<button id="carousel__button--next" aria-label="Next slide">></button>
</div>
</div>
`;
},
}
export default ProductScreen;
let slidePosition = 0;
const slides = document.getElementsByClassName('carousel__item');
const totalSlides = slides.length;
document.
getElementById('carousel__button--next')
.addEventListener("click", function() {
moveToNextSlide();
});
document.
getElementById('carousel__button--prev')
.addEventListener("click", function() {
moveToPrevSlide();
});
function updateSlidePosition() {
for (let slide of slides) {
slide.classList.remove('carousel__item--visible');
slide.classList.add('carousel__item--hidden');
}
slides[slidePosition].classList.add('carousel__item--visible');
}
function moveToNextSlide() {
if (slidePosition === totalSlides - 1) {
slidePosition = 0;
} else {
slidePosition++;
}
updateSlidePosition();
}
function moveToPrevSlide() {
if (slidePosition === 0) {
slidePosition = totalSlides - 1;
} else {
slidePosition--;
}
updateSlidePosition();
};