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

Django项目中jQuery toggle('slow')动画效果不生效问题排查

问题分析与解决方案

你的toggle('slow')动画不生效的核心原因是jQuery版本冲突且使用了无动画的slim版本,另外还有几个细节问题需要调整,下面一步步说明:

1. 核心问题:jQuery slim版缺失动画模块

你在页面中先后引入了两个jQuery版本:

  • 先引入了完整的jquery-3.3.1.min.js(包含动画模块,支持带参数的toggle动画)
  • 之后又引入了jquery-3.3.1.slim.min.js(这个版本为了缩小体积,移除了动画、AJAX等非核心模块)

后面的slim版本会覆盖前面的完整版本,导致toggle('slow')依赖的动画功能被移除,所以'slow'参数完全失效。

解决方法:

删除slim版本的jQuery引入,只保留完整版本。请移除这段代码:

<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>

2. 优化初始显示状态(可选)

目前所有salle_detail区块默认都是显示状态,第一次点击只会触发隐藏动作,动画效果不明显。建议给这些区块添加Bootstrap的d-none类,设置初始隐藏:

<div class="salle_detail d-none" id="{{ s.name }}-content">

这样第一次点击时,区块会以缓慢动画展开,效果更直观。

3. 修复HTML拼写错误

代码里有一处明显的拼写错误,会导致样式失效:

<div clas=detail_capteur">

修正为:

<div class="detail_capteur">

4. 确保DOM加载完成后绑定事件

虽然你的JS代码放在页面底部,但最好把jQuery事件绑定代码包裹在$(document).ready()中,确保DOM完全加载后再执行绑定,避免元素未加载导致绑定失败:

$(document).ready(function() {
    {% for s in salle %}
    $( "#{{ s.name }}" ).click(function(event) {
        var className = "#{{ s.name }}" + '-content';
        $(className).toggle('slow');
    });
    {% endfor %}
});

完成以上修改后,点击.bloc-salle区块时,对应的salle_detail就会以缓慢的动画效果切换显示/隐藏状态了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 09:08:10