首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我有一个addEventListener和一个For循环的问题

我有一个addEventListener和一个For循环的问题
EN

Stack Overflow用户
提问于 2021-08-11 07:58:59
回答 1查看 61关注 0票数 0

我想做一个视频滑块。问题是,循环只对每个按钮起作用,但console.log会在单击时继续起作用。视频是在一个For循环中使用vimeo api在php中生成的。

当我第一次点击右键时,它工作了一次,如果我重试,它就死了。如果我在点击右边的按钮后点击左边的按钮,它会工作一次,但它跳过一个视频,并在左边跳过2个视频。

单击右侧按钮,然后单击左侧按钮后,网页中的HTML:

这是我的php代码:

代码语言:javascript
复制
$CLIENT_IDENTIFIER = "{CLIENT_IDENTIFIER}";
$CLIENT_SECRET = "{CLIENT_SECRET}";
$ACCESS_TOKEN = "{ACCESS_TOKEN}";
$CLIENT_ID = "{CLIENT_ID}";
require 'vendor/autoload.php';
use Vimeo\Vimeo;
$client = new Vimeo($CLIENT_IDENTIFIER, $CLIENT_SECRET, $ACCESS_TOKEN);
 
$response = $client->request('/users/{CHANNEL}/videos?sort=date&direction=desc', array(), 'GET');
for ($i=0; $i < 7; $i++) {
  $lien = $response["body"]["data"][$i]["uri"];
  $video_id = substr($lien, 8);
  echo '<div class="videos video-'.$i.'">
  <iframe title="vimeo-player" src="https://player.vimeo.com/video/'.$video_id.'?" width="720" height="480" frameborder="0"       allowfullscreen></iframe>
  </div>';
}

下面是我的JS代码:

代码语言:javascript
复制
var videos = document.querySelectorAll(".videos");

next.addEventListener("click", function() {
    for (let i=0; i<7; i++) {
        videos[i].classList.remove("video"+[i]);
        videos[i].classList.add("video"+[i-1]);
        console.log(videos[i])
    }
});

prev.addEventListener("click", function() {
    for (let i=0; i<7; i++) {
        videos[i].classList.remove("video"+[i]);
        videos[i].classList.add("video"+[i+1]);
        console.log(videos[i])
    }
});

我不知道为什么它不能工作,我希望你有一个解决方案!

EN

回答 1

Stack Overflow用户

发布于 2021-08-11 09:40:01

好吧,这是有点长,但它是有效的。

我使用的JS代码:

代码语言:javascript
复制
let prev = document.querySelector(".group1-Prev");
let next = document.querySelector(".group1-Next");
let slider = document.querySelector("#slider");

var videos = document.querySelectorAll(".videos");

let video0 = document.querySelector(".video0");
let video1 = document.querySelector(".video1");
let video2 = document.querySelector(".video2");
let video3 = document.querySelector(".video3");
let video4 = document.querySelector(".video4");
let video5 = document.querySelector(".video5");
let video6 = document.querySelector(".video6");

let id0 = 0;
let id1 = 1;
let id2 = 2;
let id3 = 3;
let id4 = 4;
let id5 = 5;
let id6 = 6;

next.addEventListener("click", function() {

    video0.classList.remove("video"+id0);
    video0.classList.add("video"+Number(id0-1));

    video1.classList.remove("video"+id1);
    video1.classList.add("video"+Number(id1-1));

    video2.classList.remove("video"+id2);
    video2.classList.add("video"+Number(id2-1));

    video3.classList.remove("video"+id3);
    video3.classList.add("video"+Number(id3-1));

    video4.classList.remove("video"+id4);
    video4.classList.add("video"+Number(id4-1));

    video5.classList.remove("video"+id5);
    video5.classList.add("video"+Number(id5+-1));

    video6.classList.remove("video"+id6);
    video6.classList.add("video"+Number(id6-1));

    id0 = Number(id0-1);
    id1 = Number(id1-1);
    id2 = Number(id2-1);
    id3 = Number(id3-1);
    id4 = Number(id4-1);
    id5 = Number(id5-1);
    id6 = Number(id6-1);

});

prev.addEventListener("click", function() {

    video0.classList.remove("video"+id0);
    video0.classList.add("video"+Number(id0+1));

    video1.classList.remove("video"+id1);
    video1.classList.add("video"+Number(id1+1));

    video2.classList.remove("video"+id2);
    video2.classList.add("video"+Number(id2+1));

    video3.classList.remove("video"+id3);
    video3.classList.add("video"+Number(id3+1));

    video4.classList.remove("video"+id4);
    video4.classList.add("video"+Number(id4+1));

    video5.classList.remove("video"+id5);
    video5.classList.add("video"+Number(id5+1));

    video6.classList.remove("video"+id6);
    video6.classList.add("video"+Number(id6+1));

    id0 = Number(id0+1);
    id1 = Number(id1+1);
    id2 = Number(id2+1);
    id3 = Number(id3+1);
    id4 = Number(id4+1);
    id5 = Number(id5+1);
    id6 = Number(id6+1);

});

谢谢你的帮助!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68738141

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档