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

Django Admin集成ImageViewer插件报错:$ is not a function

解决Django Admin中ImageViewer插件的$ is not a function错误

这个问题的核心原因是Django Admin默认启用了jQuery的noConflict模式——为了避免和其他JS库冲突,它会释放全局的$变量,所以直接使用$就会抛出"$ is not a function"的错误。下面是具体的修复步骤:

1. 修改自定义脚本my_code.js

把你当前的代码:

$(function () { $('.pannable-image').ImageViewer(); });

替换成以下两种写法之一:

写法一:使用jQuery替代$,并利用其DOM就绪回调

jQuery(function() {
  jQuery('.pannable-image').ImageViewer();
});

写法二:通过自执行函数重新映射$为jQuery(更符合习惯的写法)

(function($) {
  $(function() {
    $('.pannable-image').ImageViewer();
  });
})(jQuery);

这种写法在函数内部可以正常使用$,同时不会影响全局环境。

2. 验证插件本身的兼容性

你提到的ImageViewer插件最后一行是}((window.jQuery), window, document));,说明它已经正确接收了window.jQuery作为参数,插件内部的$应该是正常工作的,所以主要问题还是出在你自己的初始化代码上。

额外说明

关于你提到的my_code.js加载在图片HTML之前的问题:使用$(function() {...})(或者上面的jQuery(function() {...}))已经处理了DOM就绪的问题,所以脚本加载顺序不会影响元素的选择,这个是没问题的。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 08:43:15