Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 21.12.2019
Сообщений: 39

При создании нескольких одинаковых контейнеров с использованием одного и того же скрипта - скрипт работает только на пор

11.06.2020, 23:05. Показов 1360. Ответов 4

Студворк — интернет-сервис помощи студентам
Мне нужно сделать много одинаковых div в которых будет одно и тоже, только некоторые значения переменных будут меняться.
Я применяю один и тот же js скрипт ко всем ним. Скрипт правильно создает обьект но дальнейшая работа обьекта выполняется только последним созданным div.

В кратце что я делаю:
Есть товар на сайте. Контейнер в котором этот товар находится - должен иметь еще несколько схожих товаров и они должны сменять текущий наэжатием на стрелки влево и вправо. Для этого я использую плагин swiper. Получается как смена слайдов. Этот плагин импортируется как отдельный файл. Но есть еще один файл - маленький скрипт js который создает обьект используя библиотеки из этого плагина.

Вот пример койнтейнера что я создаю.

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<div class="product">
            <!-- Slider main container -->
            <div class="swiper-container">
                <!-- Additional required wrapper -->
                <div class="swiper-wrapper">
                    <!-- Slides -->
                    <div class="swiper-slide">Slide 1</div>
                    <div class="swiper-slide">Slide 2</div>
                    <div class="swiper-slide">Slide 3</div>
                </div>
                <!-- If we need pagination -->
                <div class="swiper-pagination"></div>
            
                <!-- If we need navigation buttons -->
                <div class="swiper-button-prev"></div>
                <div class="swiper-button-next"></div>
            </div>
        
            <script src="swiperscript.js"></script>
        </div>
Скрипт которым я создаю это вот:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var menu = ['Slide 1', 'Slide 2', 'Slide 3']
var mySwiper = new Swiper ('.swiper-container', {
    // If we need pagination
    pagination: {
        el: '.swiper-pagination',
            clickable: true,
            renderBullet: function (index, className) {
            return '<span class="' + className + '">' + (menu[index]) + '</span>';
        },
    },
 
    // Navigation arrows
    navigation: {
        nextEl: '.swiper-button-next',
        prevEl: '.swiper-button-prev',
    },
  })

То есть, я так понима, что создается mySwiper. И он может быть только один по сколько не может существовать несколько одинаковых переменных. И по этому работае корректно только последний....?

Надеюсь я понятно обьяснил... Нормально выложить код я не могу так как использую плагин а его я тут вставить никак не смогу...

Спасибо большое!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.06.2020, 23:05
Ответы с готовыми решениями:

Типы контейнеров STL, в которых можно хранить несколько экземпляров одного и того же значения
Доброго времени суток. Выберите типы контейнеров STL, в которых можно хранить несколько экземпляров одного и того же значения...

При создании сайта не работает файл <viev_cat.php> что только уже не пробовал!
\\ index.php работает нормально после того как подключил файл viev_cat.php сразу начало выбивать ошибку Warning: mysql_num_rows() expects...

Видимость одного скрипта в нескольких документах
Как сделать так, чтобы скрипт объявленный в одном документе был доступен в нескольких документах ?

4
 Аватар для diadiavova
7258 / 2605 / 744
Регистрация: 11.04.2015
Сообщений: 4,149
Записей в блоге: 43
12.06.2020, 09:05
Цитата Сообщение от Andrews8888 Посмотреть сообщение
Нормально выложить код я не могу так как использую плагин а его я тут вставить никак не смогу...
Можно было ссылку на документацию дать. Я вот нашел, вроде бы он, но точно ведь не знаю
Swiper API
Цитата Сообщение от Andrews8888 Посмотреть сообщение
. И он может быть только один по сколько не может существовать несколько одинаковых переменных.
Насколько я понимаю, острой необхдимости создавать переменные нет, поскольку ссылку на объект можно получить из контейнера.
То есть, ничего не мешает сделать что-то типа
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
        for (let container of document.querySelectorAll(".swiper-container"))
        {
            let s = new Swiper(container, {
                // If we need pagination
                pagination: {
                    el: '.swiper-pagination',
                    clickable: true,
                    renderBullet: function (index, className)
                    {
                        return '<span class="' + className + '">' + (menu[index]) + '</span>';
                    },
                },
 
                // Navigation arrows
                navigation: {
                    nextEl: '.swiper-button-next',
                    prevEl: '.swiper-button-prev',
                },
            });
        }
Я не пробовал это использовать, но исхожу из того, что конструктору можно передавать не только селектор, но и ссылку на сам контейнер
new Swiper(swiperContainer, parameters)- initialize swiper with options

swiperContainer - HTMLElement or string (with CSS Selector) of swiper container HTML element. Required.
parameters - object - object with Swiper parameters. Optional.
Method returns initialized Swiper instance
И из того, что
After you initialize Swiper it is possible to access to Swiper's instance on its HTMLElement. It is swiper property of Swiper's HTML container element:
То есть, к конкретному экземпляру свайпера можно получить доступ через свойство swiper самого контейнера, которое у него появится после инициализации. Ну по крайней мере, если вывод о том, что он на странице может быть в единственном экземпляре, ты сделал только исходя из того, что
Цитата Сообщение от Andrews8888 Посмотреть сообщение
И он может быть только один по сколько не может существовать несколько одинаковых переменных.
Если в документации ничего такого не написано, то стоит попробовать.
0
 Аватар для vinikon
340 / 160 / 89
Регистрация: 16.01.2020
Сообщений: 771
14.06.2020, 14:39
можно сохранять объекты swiper не в переменную, а элементами массива, тогда будут создаваться разные объекты. например, так
JavaScript
1
2
3
4
5
6
var swipers = new Array();// здесь будут храниться объекты swiper
 
// добавляем очередной
var menu = ['Slide 1', 'Slide 2', 'Slide 3']
swipers[swipers.length - 1] = new Swiper ('.swiper-container', {
// ... тут код объекта swiper
0
0 / 0 / 0
Регистрация: 21.12.2019
Сообщений: 39
15.06.2020, 00:38  [ТС]
Цитата Сообщение от vinikon Посмотреть сообщение
можно сохранять объекты swiper не в переменную, а элементами массива, тогда будут создаваться разные объекты. например, так
JavaScript
1
2
3
4
5
6
var swipers = new Array();// здесь будут храниться объекты swiper
 
// добавляем очередной
var menu = ['Slide 1', 'Slide 2', 'Slide 3']
swipers[swipers.length - 1] = new Swiper ('.swiper-container', {
// ... тут код объекта swiper
Спасибо, но не получилось... Все та-же проблема...
0
 Аватар для vinikon
340 / 160 / 89
Регистрация: 16.01.2020
Сообщений: 771
15.06.2020, 09:50
Цитата Сообщение от Andrews8888 Посмотреть сообщение
Спасибо, но не получилось...
готовое решение
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>Swiper demo</title>
  <!-- Link Swiper's CSS -->
  <link rel="stylesheet" href="./css/swiper.css">
 
  <!-- Demo styles -->
  <style>
    html, body {
      position: relative;
      height: 100%;
    }
    body {
      background: #eee;
      font-family: Helvetica Neue, Helvetica, Arial, sans-serif;
      font-size: 14px;
      color:#000;
      margin: 0;
      padding: 0;
    }
    .swiper-container {
      width: 100%;
      height: 20%;
      margin: 20px 0;
    }
    .swiper-slide {
      text-align: center;
      font-size: 18px;
      background: #fff;
 
      /* Center slide text vertically */
      display: -webkit-box;
      display: -ms-flexbox;
      display: -webkit-flex;
      display: flex;
      -webkit-box-pack: center;
      -ms-flex-pack: center;
      -webkit-justify-content: center;
      justify-content: center;
      -webkit-box-align: center;
      -ms-flex-align: center;
      -webkit-align-items: center;
      align-items: center;
    }
  </style>
</head>
<body>
  <!-- Swiper 1 -->
  <div class="swiper-container" id="swiper1">
    <div class="swiper-wrapper">
      <div class="swiper-slide">Slide 1</div>
      <div class="swiper-slide">Slide 2</div>
      <div class="swiper-slide">Slide 3</div>
    </div>
    <div class="swiper-pagination" id="swiper1_pagination"></div>
 
    <!-- If we need navigation buttons -->
    <div class="swiper-button-prev" id="swiper1_prev"></div>
    <div class="swiper-button-next" id="swiper1_next"></div>
  </div>
  
  <!-- Swiper 2 -->
  <div class="swiper-container" id="swiper2">
    <div class="swiper-wrapper">
      <div class="swiper-slide">Slide 4</div>
      <div class="swiper-slide">Slide 5</div>
      <div class="swiper-slide">Slide 6</div>
      <div class="swiper-slide">Slide 7</div>
      <div class="swiper-slide">Slide 8</div>
    </div>
    <div class="swiper-pagination" id="swiper2_pagination"></div>
 
    <!-- If we need navigation buttons -->
    <div class="swiper-button-prev" id="swiper2_prev"></div>
    <div class="swiper-button-next" id="swiper2_next"></div>
  </div>
  
    <!-- Swiper 2 -->
  <div class="swiper-container" id="swiper3">
    <div class="swiper-wrapper">
      <div class="swiper-slide">Slide 9</div>
      <div class="swiper-slide">Slide 10</div>
      <div class="swiper-slide">Slide 11</div>
      <div class="swiper-slide">Slide 12</div>
      <div class="swiper-slide">Slide 13</div>
      <div class="swiper-slide">Slide 14</div>
      <div class="swiper-slide">Slide 15</div>
    </div>
    <div class="swiper-pagination" id="swiper3_pagination"></div>
 
    <!-- If we need navigation buttons -->
    <div class="swiper-button-prev" id="swiper3_prev"></div>
    <div class="swiper-button-next" id="swiper3_next"></div>
  </div>
  <!-- Swiper JS -->
  <script src="./js/swiper.js"></script>
 
  <!-- Initialize Swiper -->
  <script>
      var swipers = new Array();
    swipers[swipers.lengt - 1] = new Swiper ('#swiper1', {
    // Optional parameters
    direction: 'vertical',
    loop: true,
 
    // If we need pagination
    pagination: {
      el: '#swiper1_pagination',
    },
 
    // Navigation arrows
    navigation: {
      nextEl: '#swiper1_next',
      prevEl: '#swiper1_prev',
    }
  });
  swipers[swipers.lengt - 1] = new Swiper ('#swiper2', {
    // Optional parameters
    direction: 'vertical',
    loop: true,
 
    // If we need pagination
    pagination: {
      el: '#swiper2_pagination',
    },
 
    // Navigation arrows
    navigation: {
      nextEl: '#swiper2_next',
      prevEl: '#swiper2_prev',
    }
  })
  
  swipers[swipers.lengt - 1] = new Swiper ('#swiper3', {
    // Optional parameters
    direction: 'vertical',
    loop: true,
 
    // If we need pagination
    pagination: {
      el: '#swiper3_pagination',
    },
 
    // Navigation arrows
    navigation: {
      nextEl: '#swiper3_next',
      prevEl: '#swiper3_prev',
    }
  })
  </script>
</body>
</html>
только файлы нужные подключите правильно
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.06.2020, 09:50
Помогаю со студенческими работами здесь

Скрипт работает только при перезагрузки страници
$(function(){ if ($('#wpadminbar').html()) { $('#header').css('top', '32px') } else{ $('#header').css('top', '0px') }; ...

Парсинг одного тега XML из нескольких одинаковых
Имеется такой XML код:&lt;br&gt; &lt;тег1&gt; &lt;тег2&gt;Яблоко&lt;/тег2&gt; &lt;тег2&gt;Вишня&lt;/тег2&gt; ...

SqlCommand.ExecuteScalar() работает только при вводе одного символа
Создал форму входа и при вводе логина и пароля в текстбоксы, должна открыться новая форма. Я создал хранимую процедуру (Sql запрос) при...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru