Ошибка WordPress: $ (...). Carousel не является функцией даже после того, как файл JS в очереди

PandaNinja спросил: 12 мая 2018 в 05:08 в: javascript

В моей жизни я не понимаю, почему я продолжаю получать эту ошибку. Сценарий JS сделал enqueue, и тест console.log появился в браузере, как вы можете видеть ниже.

Uncaught TypeError: $ (...). Carousel не является функцией

p>

См. ниже код JS и Functions.php.

Карусель JS-код : я отбросил это в синтаксической проверке, и он сказал, что все в порядке.

var $ = jQuery; //This fixed the WordPress error "Uncaught TypeError: $ is not a function" $(document).ready(function() {    console.log( "Testing blog-tab-carousel.js file. It is properly enqueued." );    var clickEvent = false;
    $('#newsCarousel').carousel({
     interval: 4000
    }).on('click', '.list-group li', function() {
     clickEvent = true;
     $('.list-group li').removeClass('active');
     $(this).addClass('active');
    }).on('slid.bs.carousel', function(e) {
     if (!clickEvent) {
      var count = $('.list-group').children().length - 1;
      var current = $('.list-group li.active');
      current.removeClass('active').next().addClass('active');
      var id = parseInt(current.data('slide-to'));
      if (count == id) {
       $('.list-group li').first().addClass('active');
      }
     }
     clickEvent = false;
    });
   })   $(window).load(function() {
    var boxheight = $('#newsCarousel .carousel-inner').innerHeight();
    var itemlength = $('#newsCarousel .item').length;
    var triggerheight = Math.round(boxheight / itemlength + 1);
    $('#newsCarousel .list-group-item').outerHeight(triggerheight);
   });

Functions.php соответствующие фрагменты

function enqueue_blog_custom_styles() {
    wp_enqueue_style( 'blog-tab-carousel', '/wp-content/themes/kiddieacademy/css/blog-tab-carousel.css', false ); 
}add_action( 'wp_enqueue_scripts', 'enqueue_blog_custom_styles' );function enqueue_blog_custom_script() {
    wp_enqueue_script( 'blog-tab-carousel', '/wp-content/themes/kiddieacademy/js/custom/blog-tab-carousel.js', false );
}add_action( 'wp_enqueue_scripts', 'enqueue_blog_custom_script' );

Примечание. Оригинальный разработчик отменил регистрацию jQuery в функции functions.php. Я заметил, что когда я это прокомментирую, консольный тест для карусели блога отображается на консоли. Если я удалю комментарий, сохраняя wp_deregister_script ('jquery'); то консоль.log не появится.

function enqueue_theme_scripts() {
    /* Remove the jquery script
     wp_deregister_script('jquery');  */
    require_js("mousewheel");
    require_js("fancybox");
}

2 ответа

Peter HvD ответил: 13 мая 2018 в 10:11

Я часто обнаружил, что то, что работает один сайт с переопределением $, не работает в другом месте. Лично я использую это, и он работает чаще всего:

jQuery(document).ready(function($) {
    var $ = jQuery; // probably not needed, but seems to help in a "belt & braces" kinda way!
PandaNinja ответил: 13 мая 2018 в 12:09

Теперь это РЕШЕНИЕ. Оказывается, оригинальная компания-разработчик не выдавала сценарии Bootstrap и CSS, поэтому карусель не работала. Мне пришлось загрузить физические файлы и поместить их в папки тем в их многосайтовой иерархии.

Спасибо всем за попытку!

Вы можете закрыть это сейчас.

Aki ответил: 13 мая 2018 в 05:08
Это связано с тем, что ваш файл min js загружается после того, как скрипт является единственной проблемой.
PandaNinja ответил: 13 мая 2018 в 08:38
Спасибо, но я не думаю, что ты понял, что я имел в виду. Я сейчас здоров.