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

ASP.Net MVC中Camera slideshow报错:$(...).camera is not a function

解决ASP.NET MVC 5中Camera Slideshow的TypeError: $(...).camera is not a function问题

针对你在Visual Studio 2022的ASP.NET MVC 5.2.9.0(VB.NET)项目中遇到的Camera轮播组件报错问题,直接给你几个针对性的排查和解决步骤:

  • 严格控制脚本加载顺序
    Camera是jQuery插件,必须先加载jquery.min.js,再加载camera.min.js,顺序绝对不能反。如果用Bundle管理资源,在BundleConfig.vb里要按顺序添加:

    bundles.Add(New ScriptBundle("~/bundles/camera").Include(
                "~/Scripts/jquery.min.js",
                "~/Scripts/camera.min.js"
            ))
    

    视图里引用Bundle时,要保证在调用camera()方法之前完成加载,别把脚本放页面底部却在头部执行初始化代码。

  • 确认资源路径正确
    MVC的资源路径规则和纯HTML不同,务必用@Url.Content()或者~/前缀确保路径解析正确,比如:

    <script src="@Url.Content("~/Scripts/camera.min.js")"></script>
    <link rel="stylesheet" href="@Url.Content("~/Content/camera.css")" />
    

    打开浏览器F12的Network面板,刷新页面,检查camera.min.js和相关CSS是否返回200状态,出现404的话就调整文件位置或者引用路径。

  • 处理jQuery冲突问题
    即使替换了$为jQuery,也要排查是否有其他JS库占用了$或jQuery变量,可使用noConflict模式隔离:

    var jq = jQuery.noConflict();
    jq(function() {
        jq('#camera_wrap').camera({
            // 你的轮播配置项
        });
    });
    

    同时检查页面是否重复加载jQuery——比如Bundle里加载了一次,视图里又单独引用,会导致插件绑定到旧的jQuery实例上,新实例找不到camera方法。

  • 确保DOM就绪后初始化
    必须把camera()的调用代码放在DOM加载完成之后,要么用jQuery(document).ready()包裹,要么把脚本放在页面最底部(目标DOM元素之后):

    jQuery(document).ready(function() {
        jQuery('#camera_wrap').camera({
            height: '400px',
            pagination: true
            // 其他配置
        });
    });
    
  • 验证camera.min.js文件完整性
    把纯HTML中能正常运行的camera.min.js文件重新复制到MVC项目的Scripts文件夹,覆盖现有文件——有时候复制过程中文件会损坏,导致插件方法未正确定义。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 07:33:22