You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:Divi主题用短代码加轮播时出现Uncaught TypeError错误

这个错误的核心原因是Owl Carousel的JavaScript资源未正确加载,或是加载顺序不符合要求,结合Divi主题的特性,以下是具体解决步骤:


1. 先修正代码语法错误

你提供的代码里存在一个低级语法问题:<script>>多写了一个>,需改为标准的<script>标签,否则会影响脚本执行。


2. 确保Owl Carousel资源正确引入

Divi主题默认不内置Owl Carousel,需要手动引入它的CSS和JS文件,推荐通过子主题的functions.php添加(避免主题更新丢失修改):

function enqueue_owl_carousel() {
    // 加载Owl Carousel核心样式
    wp_enqueue_style( 'owl-carousel-css', '//cdnjs.cloudflare.com/ajax/libs/OwlCarousel2/2.3.4/assets/owl.carousel.min.css', array(), '2.3.4' );
    // 加载Owl Carousel主题样式
    wp_enqueue_style( 'owl-carousel-theme-css', '//cdnjs.cloudflare.com/ajax/libs/OwlCarousel2/2.3.4/assets/owl.theme.default.min.css', array(), '2.3.4' );
    // 加载Owl Carousel JS(依赖jQuery,确保加载顺序正确)
    wp_enqueue_script( 'owl-carousel-js', '//cdnjs.cloudflare.com/ajax/libs/OwlCarousel2/2.3.4/owl.carousel.min.js', array( 'jquery' ), '2.3.4', true );
}
add_action( 'wp_enqueue_scripts', 'enqueue_owl_carousel' );
  • array( 'jquery' )参数确保jQuery在Owl Carousel之前加载,避免依赖问题;
  • true参数指定脚本在页脚加载,减少DOM未就绪的问题。

3. 调整自定义JS的写法与加载位置

Divi启用了jQuery的noConflict模式,直接用$可能导致未定义问题,同时要确保脚本在Owl Carousel之后加载:

  • 推荐将自定义JS放在Divi后台「主题选项 > 集成 > 页脚」区域,或者子主题的独立JS文件中;
  • 修正后的JS代码:
jQuery(document).ready(function($) {
    // 链式调用简化代码
    $('.slider').addClass('owl-carousel').owlCarousel({
        loop:true,
        margin:10,
        items:1,
        dots:true,
        nav:false,
        URLhashListener:true
    });
    
    $('.slider2').addClass('owl-carousel').owlCarousel({
        loop:true,
        margin:10,
        nav:true,
        items:1,
        dots:false,
        center: true,
        URLhashListener:true    
    });
});

4. 排查冲突问题

  • 暂时禁用其他插件,测试是否存在脚本冲突;
  • 在浏览器控制台输入jQuery.fn.jquery,查看当前jQuery版本,Owl Carousel 2需要jQuery 1.8及以上版本,确保版本兼容。

内容的提问来源于stack exchange,提问作者Sonali

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 04:15:33