Как заставить Accodion правильно работать с контентом Dynami c? - PullRequest
0 голосов
/ 16 июня 2020

newb ie здесь ...

У меня есть аккордеон, содержимое которого вводится через include. Аккордеон отображается, но все вкладки находятся в открытом положении, и они не переключаются между открытием и закрытием. Я полностью застрял в том, как заставить их работать с динамическим добавлением контента аккордеона.

Это код, который работает с обычными аккордеонами контента: '' '

(function ($, window, document, undefined) {

'use strict';

$(document).ready(function() {

    /**
     * Accordions ===========================
     * Save DOM selectors.
     */
    var $container_class = $('.accordions');
    var $default_class = $('.beefup');
    var $toggle_buttons_class = $('.toggle-buttons');

    /**
     * default options.
     */
    var $default_options = {
        openSingle: true,
        openSpeed: 300,
        closeSpeed: 300
    };

    /**
     * default settings.
     */

    // we have accordions selector?
    if ($container_class.length) {

        // loop throw main containers
        $container_class.each(function() {

            // we have beefup selector?
            if ($default_class.length) {
                $(this).find($default_class).beefup($default_options);
            }

        });

    }

    // we have toggle buttons selector?
    if ($toggle_buttons_class.length) {

        $toggle_buttons_class.each(function() {

            var $this = $(this);
            var $beefup = $this.find($default_class).beefup($default_options);

            // open all
            $this.find('.toggle-open-all').on('click', function() {
                $beefup.open();
            });

            // close all
            $this.find('.toggle-close-all').on('click', function() {
                $beefup.close();
            });

            // open accordion using button
            $this.find('.buttons-group').find('.button').each(function(index) {
                $(this).on('click', function() {

                    if (!$(this).hasClass('toggle-open-all') && !$(this).hasClass('toggle-close-all')) {

                        $this.find($container_class).find($default_class).each(function(item) {

                            if (index === item) {
                                $beefup.click($(this));
                            }

                        });

                    }

                });
            });

        });

    }

' ' 'Классы для аккордеона Dynami c разные, я пытался изменить их в дублированном разделе этого JS, но не повезло.

Страница, если wi sh для просмотра находится здесь: http://clear-talk.oiw11.com/motorola/bpr40.htm Это раздел в нижней части страницы под вкладкой «аксессуары».

Мне интересно, есть ли go лучший / простой способ узнать об этом.

Любая помощь будет принята с благодарностью.

Заранее спасибо!

...