Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Slick Slider, sledeUp() и slideToggle() - конфликт? (https://javascript.ru/forum/misc/80517-slick-slider-sledeup-i-slidetoggle-konflikt.html)

Alice Romanova 15.06.2020 19:36

В общем, я проект собираю с помощью Gulp. И библиотеки были собраны в один файл и минифицированы. Видимо, так не стоит делать, потому что, если подключить отдельно jQuery и отдельно Slick Slider, то всё прекрасно работает без ошибок.

laimas 15.06.2020 19:42

<div class="spoiler one">
    <div class="spoiler__item">
        <div class="spoiler__title">Head 1</div>
        <div class="spoiler__text">Text 1</div>
    </div>
    <div class="spoiler__item">
        <div class="spoiler__title">Head 2</div>
        <div class="spoiler__text">Text 2</div>
    </div>
    <div class="spoiler__item">
        <div class="spoiler__title">Head 3</div>
        <div class="spoiler__text">Text 3</div>
    </div>
    <div class="spoiler__item">
        <div class="spoiler__title">Head 4</div>
        <div class="spoiler__text">Text 4</div>
    </div>
</div>


и код:

var spl = $('.spoiler__title').click(function() {
    console.log(spl.not(this).siblings())
    spl.not(this).siblings().slideUp();
})


В консоли всегда будет массив из элементов spoiler__text за исключением соседнего с текущим spoiler__title, и код spl.not(this).siblings().slideUp() выполнится без проблем. У вас же тут ошибка - проверьте, что у вас в консоли.

Alice Romanova 15.06.2020 20:03

В консоли массив из элементов spoiler__text за исключением соседнего с текущим spoiler__title
И ошибка Uncaught TypeError: r.not(...).siblings(...).slideUp is not a function

laimas 15.06.2020 20:11

r.not(...).siblings(...) именно так?

<html>
<head>
</head>
<body>
<div class="spoiler one">
    <div class="spoiler__item">
        <div class="spoiler__title">Head 1</div>
        <div class="spoiler__text">Text 1</div>
    </div>
    <div class="spoiler__item">
        <div class="spoiler__title">Head 2</div>
        <div class="spoiler__text">Text 2</div>
    </div>
    <div class="spoiler__item">
        <div class="spoiler__title">Head 3</div>
        <div class="spoiler__text">Text 3</div>
    </div>
    <div class="spoiler__item">
        <div class="spoiler__title">Head 4</div>
        <div class="spoiler__text">Text 4</div>
    </div>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script>
var spl = $('.spoiler__title').click(function() {
    spl.not(this).siblings().slideUp();
})
</script>
</body>
</html>


То есть нет ошибок, ошибка может возникать если spl.not(this).siblin() возвращает null или не jq-объект. Второе исключено, ибо spl. и далее по цепочке возвращает jq-объект. Конфликт с библиотекой... тогда у вас $('.spoiler__title').click.. уже была бы ошибка.

Alice Romanova 15.06.2020 20:37

Цитата:

Сообщение от laimas
r.not(...).siblings(...) именно так?

Да

laimas 15.06.2020 20:51

Значит ищите ошибку в своем коде, у вас, видимо, на странице уже сжатый код, ибо с чего вдруг появилась r.

А если в коде даже удалить все элементы spoiler__text, то ошибки не будет, просто не будет выполняться функция slideUp(), ибо коллекция будет пуста. А у вас получается что нет вообще объектов, тогда и в консоли вы их не должны видеть. Что-то с чем-то не стыкуется у вас или в ваших ответах.

Может, если код сжимается, где-то в нем возникает ошибка.

Alice Romanova 15.06.2020 21:04

Цитата:

Сообщение от laimas (Сообщение 525877)
Может, если код сжимается, где-то в нем возникает ошибка.

Да. Мне тоже так кажется.
Еще раз спасибо.

laimas 15.06.2020 21:17

А самой библиотекой нет проблем? Другие функции то выполняются, судя по вашим словам.

Alice Romanova 15.06.2020 21:32

Да. Всё выполняется.
И даже спойлер работает, если вместо slideUp() и slideToggle() show() и hide() написать.
А вот fadeIn() / fadeOut(), кстати, выдаёт такую же ошибку.

laimas 16.06.2020 04:58

Тогда это не те ошибки, о которых предположение, то есть ссылки на нечто не потребное, к чему нельзя применить. Проверьте что еще подключается со слайдером. Подключите другую JQ и проверьте.


Часовой пояс GMT +3, время: 02:21.