Я не могу увеличить значение переменной при нажатии кнопки - PullRequest
1 голос
/ 19 июня 2019

Я просто хочу сделать это: (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);
    }
});

результат: всегда индекс 0

Мое последнее редактирование (индекс увеличивается и уменьшается, но данные не добавляются в HTML):

$(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);
    }

});

1 Ответ

2 голосов
/ 19 июня 2019

Вы увеличиваете и уменьшаете index, но вскоре после этого вы возвращаете его обратно в функцию showSlides, когда вы устанавливаете index = slideCount, так что вся ваша работа теряется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...