.slideToggle() не работает при использовании Jquery 3.1.1

По какой-то причине я получаю Uncaught TypeError, когда я пытаюсь выполнить следующий код.

jQuery(function($){
    $(document).ready(function() {
        $(".block").click(function() {
            var currentElement = $(this).find(".form-group");
            currentElement.slideToggle("slow");
        });
    });
});

Я получаю следующую ошибку

Uncaught TypeError: currentElement.slideToggle is not a function
at HTMLDivElement.<anonymous> (index.js:6)
at HTMLDivElement.dispatch (jquery-3.1.1.slim.min.js:3)
at HTMLDivElement.q.handle (jquery-3.1.1.slim.min.js:3)

Однако, когда я звоню currentElement.toggle() Это работает, как ожидалось, и я не получаю никаких ошибок.

Кто-нибудь может объяснить, почему это так?

1 ответ

Решение

Проблема здесь в том, что вы используете тонкую версию, которая исключает эффекты, такие как анимация, ожидаемая от slideToggle; поэтому функция не определена. Просто переключитесь на нормальную версию.

Со страницы Jquery

Стройное телосложение

Иногда вам не нужен ajax, или вы предпочитаете использовать одну из многих автономных библиотек, которые фокусируются на запросах ajax. И часто проще использовать комбинацию CSS и манипуляции с классами для всех ваших веб-анимаций. Наряду с обычной версией jQuery, которая включает в себя модули Ajax и Effects, мы выпустили "тонкую" версию, которая исключает эти модули. В общем, это исключает ajax, эффекты и устаревший код.

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