Javascript 我能';t增加变量';单击按钮时的值

Javascript 我能';t增加变量';单击按钮时的值,javascript,json,promise,fetch,Javascript,Json,Promise,Fetch,我只想这样做:(index++或index--当点击按钮时)但它的值不会改变(总是零)。我想我不能传递一些价值观。它必须是增加还是减少??有两个功能。一个是增加我的索引变量,另一个是减少它。但最终指数保持为0 $(document).ready(function () { "use strict"; const carousel_baslik = $(".carousel-baslik")[0]; const carousel_metin = $(".carousel-

我只想这样做:(index++或index--当点击按钮时)但它的值不会改变(总是零)。我想我不能传递一些价值观。它必须是增加还是减少??有两个功能。一个是增加我的索引变量,另一个是减少它。但最终指数保持为0

$(document).ready(function () {
    "use strict";

    const carousel_baslik = $(".carousel-baslik")[0];
    const carousel_metin = $(".carousel-metin")[0];
    const carousel_image = $(".carousel-image")[0];
    const counter = $("#counter")[0];
    const icon = $("#icon-ground")[0];
    const controller1 = $(".carousel-controller")[0];
    const controller2 = $(".carousel-controller")[1];
    var index = 0;

    class Request {
        get(url) {
            return new Promise((resolve, reject) => {
                fetch(url).then(res => res.json()).then(data => resolve(data)).catch(err => reject(err));
            })
        }
    }
    const Requesting = new Request();
    Requesting.get("js/carousel.json").then(data => {
        const slides = data.length;

        controller1.addEventListener("click", function (slideCount) {
            geri(slides);
        });
        controller2.addEventListener("click", function (slideCount) {
            ileri(slides);
        });
        add(data);
    });

    function geri(slideCount) {
        index--;
        showSlides(slideCount);
        console.log("index:" + " " + index);
        console.log("slideCount:" + " " + slideCount);
    }

    function ileri(slideCount) {
        index++;
        showSlides(slideCount);
        console.log("index:" + " " + index);
        console.log("slideCount:" + " " + slideCount);
    }

    function showSlides(slideCount) {
        index = slideCount;
        if (index < 0) {
            index = slideCount - 1;
        }
        if (index >= slideCount) {
            index = 0;
        }
        // console.log(index);
    }

    function add(data) {
        carousel_baslik.textContent = data[index].baslik;
        carousel_metin.innerHTML = data[index].metin;
        carousel_image.src = data[index].image;
        counter.textContent = data[index].count;
        const img = document.createElement("img");
        img.src = data[index].icon;
        img.className = "w-100";
        img.alt = "";
        icon.appendChild(img);
    }
});

您正在增加和减少
索引
,但不久之后,您又在
showSlides
功能中设置了它,当您设置
索引=slideCount
时,您所有的工作都将丢失。

我认为值得您阅读该页面。我意识到
showSlides
可能是一种循环方法,但你有没有试过对此进行评论,看看这是否是罪魁祸首?它会立即将索引更改为幻灯片计数,然后将索引更新为0或slideCount-1。您可以增加索引,然后在下一行调用函数时将其设置为另一个数字;放映幻灯片(幻灯片计数)
$(document).ready(function () {
    "use strict";

    const carousel_baslik = $(".carousel-baslik")[0];
    const carousel_metin = $(".carousel-metin")[0];
    const carousel_image = $(".carousel-image")[0];
    const counter = $("#counter")[0];
    const icon = $("#icon-ground")[0];
    const controller1 = $(".carousel-controller")[0];
    const controller2 = $(".carousel-controller")[1];
    var index = 0;

    class Request {
        get(url) {
            return new Promise((resolve, reject) => {
                fetch(url).then(res => res.json()).then(data => resolve(data)).catch(err => reject(err));
            })
        }
    }
    const Requesting = new Request();
    Requesting.get("js/carousel.json").then(data => {
        controller1.addEventListener("click", geri);
        controller2.addEventListener("click", ileri);
        add(data);
    });


    function add(data) {
        carousel_baslik.textContent = data[index].baslik;
        carousel_metin.innerHTML = data[index].metin;
        carousel_image.src = data[index].image;
        counter.textContent = data[index].count;
        const img = document.createElement("img");
        img.src = data[index].icon;
        img.className = "w-100";
        icon.appendChild(img);
    }

    function geri() {
        index--;
        console.log(index);

    }

    function ileri() {
        index++;
        console.log(index);
    }

});