对于我的生活,我无法理解为什么我一直收到这个错误。 JS脚本确实入队,console.log测试确实显示在浏览器中,如下所示。
未捕获的TypeError:$(...)。carousel不是函数
请参阅下面的JS和Functions.php代码。
Carousel 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' );
注意:原始开发人员在functions.php中注销了jQuery。我注意到,当我发表评论时,博客轮播的console.log测试会显示在控制台中。如果我删除了注释,保留wp_deregister_script('jquery');那么console.log就不会出现了。
function enqueue_theme_scripts() {
/* Remove the jquery script
wp_deregister_script('jquery'); */
require_js("mousewheel");
require_js("fancybox");
}
答案 0 :(得分:0)
我经常发现,重新定义$的一个网站的工作原理并不适用于其他地方。就个人而言,我使用它并且它大部分时间都有效:
jQuery(document).ready(function($) {
var $ = jQuery; // probably not needed, but seems to help in a "belt & braces" kinda way!
答案 1 :(得分:0)
现在已经解决了。事实证明原始开发公司没有将Bootstrap和CSS脚本排入队列,因此轮播无效。我必须下载物理文件并将其放在多站点层次结构中的主题文件夹中。
谢谢大家的尝试!
您现在可以关闭它。