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

Bootstrap 5集成Tempus Dominus报错:$(...).datetimepicker不是函数

问题

我已查阅Tempus Dominus脚本文档并尝试在示例页面中集成该脚本,但始终出现错误:Uncaught TypeError: $(...).datetimepicker is not a function。

以下是我的代码:

head中引入的资源:

<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-Zenh87qX5JnK2Jl0vWa8Ck2rdkQ2Bzep5IDxbcnCeuOxjzrPF/et3URy9Bv1WTRi" crossorigin="anonymous">

<!-- Custom fonts for this template-->
<link href="vendor/fontawesome-free/css/all.min.css" rel="stylesheet" type="text/css">
<link href="https://fonts.googleapis.com/css?family=Nunito:200,200i,300,300i,400,400i,600,600i,700,700i,800,800i,900,900i" rel="stylesheet">

<!-- Custom styles for this template-->
<link href="css/sb-admin-2.min.css" rel="stylesheet">

<!-- Popperjs -->
<script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.6/dist/umd/popper.min.js" integrity="sha256-BRqBN7dYgABqtY9Hd4ynE+1slnEw+roEPFzQ7TRRfcg=" crossorigin="anonymous"></script>
<!-- Tempus Dominus JavaScript -->
<script src="https://cdn.jsdelivr.net/npm/@eonasdan/tempus-dominus@6.2.10/dist/js/tempus-dominus.min.js" crossorigin="anonymous"></script>

<!-- Tempus Dominus Styles -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@eonasdan/tempus-dominus@6.2.10/dist/css/tempus-dominus.min.css" crossorigin="anonymous">

body中的HTML结构:

<div class="text-center">
    <div class="btn-group mx-auto" role="group">
        <button class="btn btn-primary btn-arrow-left" id="previous-day-btn">
            <i class="fas fa-arrow-left"></i>
        </button>
        <div class="col-xl-12 col-lg-7 text-center">
            <div class="form-group">
                <div class="input-group log-event" id="datetimepicker1" data-td-target-input="nearest" data-td-target-toggle="nearest">
                    <input id="datetimepicker1Input" type="text" class="form-control" data-td-target="#datetimepicker1" />
                    <span class="input-group-text" data-td-target="#datetimepicker1" data-td-toggle="datetimepicker">
                        <i class="fas fa-calendar"></i>
                    </span>
                </div>
            </div>
        </div>
        <button class="btn btn-primary btn-arrow-right" id="next-day-btn">
            <i class="fas fa-arrow-right"></i>
        </button>
    </div>
</div>

页面底部的JS代码:

<script src="vendor/jquery/jquery.min.js"></script>
<script src="vendor/bootstrap/js/bootstrap.bundle.min.js"></script>
<script src="vendor/jquery-easing/jquery.easing.min.js"></script>
<script src="js/sb-admin-2.min.js"></script>
<script>
    $(function() {
        $('#datetimepicker1').datetimepicker();
    });
</script>

我检查了控制台,所有JS文件均已正常加载(状态码200),请问是否有遗漏的配置或步骤?


解决方法

1. 修正JS文件加载顺序

报错的核心原因是Tempus Dominus的JS在jQuery之前加载,导致它无法挂载到jQuery对象上,所以$(...).datetimepicker()方法不存在。

调整加载顺序:将jQuery的引入移到Tempus Dominus JS之前,建议把所有JS文件统一放在页面底部,确保依赖关系正确。修改后的资源引入顺序如下:

<!-- 页面底部的JS代码 -->
<script src="vendor/jquery/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.6/dist/umd/popper.min.js" integrity="sha256-BRqBN7dYgABqtY9Hd4ynE+1slnEw+roEPFzQ7TRRfcg=" crossorigin="anonymous"></script>
<script src="vendor/bootstrap/js/bootstrap.bundle.min.js"></script>
<script src="vendor/jquery-easing/jquery.easing.min.js"></script>
<script src="js/sb-admin-2.min.js"></script>
<!-- Tempus Dominus JavaScript 必须在jQuery之后加载 -->
<script src="https://cdn.jsdelivr.net/npm/@eonasdan/tempus-dominus@6.2.10/dist/js/tempus-dominus.min.js" crossorigin="anonymous"></script>
<script>
    $(function() {
        $('#datetimepicker1').datetimepicker();
    });
</script>

同时,把head中的Tempus Dominus JS和PopperJS标签移除,避免重复加载。

2. (可选)使用原生JS初始化(无需jQuery)

如果不想依赖jQuery,v6版本的Tempus Dominus支持原生JS初始化,替换页面底部的JS代码为:

<script>
    document.addEventListener('DOMContentLoaded', function() {
        new TempusDominus.TempusDominus(document.getElementById('datetimepicker1'));
    });
</script>

这种方式不需要调整jQuery的加载顺序,更轻量化。

3. 验证依赖完整性

确保你使用的Tempus Dominus版本与Bootstrap 5兼容(你用的v6.2.10是兼容Bootstrap 5的),同时CSS文件的引入位置可以保持在head中,不影响功能。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 12:15:26