Ajax перезагружает содержимое на вкладке Bootstrap

Проблема, похоже, кроется в нескольких местах. Для начала мои диаграммы, которые я пытаюсь открыть на третьей вкладке, не будут отображать JavaScript, привязанный к div. Я полагаю, это связано с тем, что они неактивны в классе HTML, который затем не загружает диаграммы <div> для отображения диаграмм.
Я не уверен, как это исправить, я просмотрел события DOM и функции загрузки Ajax. Но я не уверен, что это действительно правильный ответ.

Способы, которыми я пытался это исправить, - активировать вкладку, которая работает. Но скажем, в будущем я хочу графики на всех трех вкладках, все равно загружается только активная вкладка. Кроме того, я попытался поместить JS-код графика вершинных диаграмм в свою функцию щелчка, которая также работает. Но опять же, если вы нажмете на вкладки в порядке 1 -> 2 -> 3, вы загрузите 3 диаграммы.

Все это с использованием диаграмм Apex, Bootstrap, PHP и JS.

<!-- Nav tabs -->
<ul class = "nav nav-tabs">
    <li class = "nav-item"><a class = "nav-link active" href = "#home">Home</a></li>
    <li class = "nav-item"><a class = "nav-link" href = "#menu1">Menu 1</a></li>
    <li class = "nav-item"><a class = "nav-link" href = "#menu2">Menu 2</a></li>
</ul>
<!-- Tab panes -->
<div class = "tab-content">
    <div id = "home" class = "container tab-pane active"><br>
        <h3>HOME</h3>
        <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
    </div>
    <div id = "menu1" class = "container tab-pane fade"><br>
        <h3>Menu 1</h3>
        <p>Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
    </div>
    <div id = "menu2" class = "container tab-pane fade"><br>
        <div class = "row">
            <div class = "col-lg-6">
                <h3>Income categories</h3>
                <div id = "chart"></div>
            </div>
            <div class = "col-lg-6">
                <h3>Expense categories</h3>
                <div id = "chart2"></div>
            </div>
        </div>
    </div>
</div>
<script>
$(document).ready(function(){
  $(".nav-tabs a").click(function(){
    $(this).tab('show');
  });
});
</script>
</body>
</html>
<!--Loads in the bar chart for analytics-->
<script src = "https://cdn.jsdelivr.net/npm/apexcharts"></script>
<?php include($_SERVER['DOCUMENT_ROOT'] . "/Management/scripts/incomegraph.php"); ?>

Это диаграммы Apex

var options = {
    chart: {
        height: 350,
        type: 'bar',
    },
    plotOptions: {
        bar: {
            horizontal: true,
        }
    },
    dataLabels: {
        enabled: true
    },
    series: [{
        data: [
            400,
            430,
            448,
            470,
            540]
    }],
    xaxis: {
        categories: [
            'Management Income',
            'Late Fee Income',
            'Application Fee Income',
            'Convience Fees',
            'Laundry',],
    }
}
var chart = new ApexCharts(document.querySelector("#chart"),options);

chart.render();

var options = {
    chart: {
        height: 350,
        type: 'bar',
    },
    plotOptions: {
        bar: {
            horizontal: true,
        }
    },
    dataLabels: {
        enabled: true
    },
    series: [{
        data: [400, 430, 448, 470, 540]
    }],
    xaxis: {
        categories: [
            'Legal fees',
            'Utilities',
            'Cleaning and Maintenance',
            'Wages and Salaries',
            'Repairs',],
    }
}
var chart = new ApexCharts(document.querySelector("#chart2"),options);

chart.render();

Единственное сообщение об ошибке, которое я получаю, выглядит следующим образом:

TypeError: Cannot read property 'forEach' of undefined
    at i.value (apexcharts:6)
    at i.value (apexcharts:6)
    at apexcharts:6
    at it (apexcharts:6)
    at new $ (apexcharts:6)
    at i.value (apexcharts:6)
    at apexcharts:6

Я просмотрел сообщение в поисках помощи, но ни у кого нет достаточного ответа Bootstrap загружает содержимое AJAX в неактивную вкладкуПерезагрузка содержимого вкладки Ajaxвсплывающее окно начальной загрузки: перезагрузить содержимое с помощью ajax

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
624
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это была ошибка в ApexCharts, которая недавно была исправлена ​​и выпущена в версии 3.7.1. Обновите ApexCharts до версии 3.7.1, и, надеюсь, проблема решится сама собой.

Ты самый лучший! Спасибо, я рвал на себе волосы, пытаясь это исправить! 2 дня я потратил впустую, но ты потрясающий человек!

Joe Meyer 01.06.2019 21:30

Извините за причиненные неудобства. Библиотека очень новая и нуждается в дополнительных тестах, чтобы избежать таких проблем. Спасибо за комплимент!

junedchhipa 02.06.2019 16:48

О, не беспокойтесь, это все еще лучшая библиотека диаграмм, я хотел бы внести некоторые изменения в код, чтобы помочь вам. У меня есть классная идея для гистограммы, в которой итоги загружаются в правую часть диаграммы, а не на диаграмму. Я попытаюсь заставить свою работу работать, а затем отправить ее вам, может быть, для примера. Код действительно очень хороший, продолжайте в том же духе!!!

Joe Meyer 03.06.2019 17:24

Другие вопросы по теме