未捕获的类型错误:对象 #<Object> 没有方法“movingBoxes”

Posted

技术标签:

【中文标题】未捕获的类型错误:对象 #<Object> 没有方法“movingBoxes”【英文标题】:Uncaught TypeError: Object #<Object> has no method 'movingBoxes' 【发布时间】:2011-07-18 08:50:13 【问题描述】:

我试图在我的 asp.net mvc 站点上使用movingBoxes 插件,但它不工作(显然)。 我在 site.master 的 head 标记中导入了movingboxes.js,就像这样

    <script src="<%: Url.Content("~/Scripts/jquery.movingboxes.js")%>" type="text/javascript"></script>

并且浏览器成功获取此脚本。现在我有一个继承自 site.master 的常规视图,其中有一点点 jquery,它调用了movingBoxes 插件

<script type="text/javascript">
    $(document).ready(function () 
        $($('#slider-one'));
        $('#slider-one').movingBoxes(
            startPanel: 1,      
            panelWidth: .5,     
            fixedHeight: false
        );

        $('#slider-two').movingBoxes(
            startPanel: 1,     
            panelWidth: .5,     
            fixedHeight: false
        );
    );
</script>

当我查看页面时。除了这个插件,一切都很好(包括其他 jquery 的东西),我得到了这个错误

这是错误的描述

任何帮助将不胜感激

编辑

显然我有这个:

    <script type="text/javascript" src="../../Scripts/jquery-1.4.1.js" />
    <script src="<%: Url.Content("~/Scripts/jquery.movingboxes.js")%>" type="text/javascript"></script>

现在可以通过将其更改为:

    <script type="text/javascript" src="../../Scripts/jquery-1.4.1.js"></script>
    <script src="<%: Url.Content("~/Scripts/jquery.movingboxes.js")%>" type="text/javascript"></script>

【问题讨论】:

我没有发现任何问题(除了我不知道什么是 `$($('#slider-one'));` 挂在顶部)。也许检查文件是否正确包含。 您能否确认 jQuery javascript 文件是在“movingboxes”之前加载的?如果它们的顺序错误,您将得到类似于您所看到的错误的内容。 他之前设置了一个警报,里面有 $('#slider-one'),这就是顶部悬挂选择器的来源。 @Neil 您的建议帮助我处理了一些稍后无法运行的脚本。谢谢 【参考方案1】:

您可以尝试一些方法来使其正常工作。

    绝对确保您的脚本被拉入页面,一种检查方法是使用 Chrome 调试器中的“源”选项卡并搜索文件。

    确保在包含 jQuery 之后再包含脚本,因为它肯定依赖于它。

除此之外,我检查了 API,就我所见,您肯定做的一切都是正确的。祝朋友好运!

编辑:确保关闭脚本标签。下面有一个答案表明这是解决方案。

【讨论】:

谢谢很多人......我一直在寻找这个很长时间......最后的结果是javascript文件的排序......再次 这不起作用,因为缺少结束标签。请从 SaschaM78 修改下面的正确答案 我还要说:确保你不会不小心多次包含 jQuery,否则第二次导入可能会清除已经导入的插件。【参考方案2】:

请记住,只有少数元素可以自动关闭,大​​多数其他元素必须通过添加显式结束标记来关闭。在上述情况下,第一个脚本标签没有正确关闭,第二个脚本的结束脚本标签随后关闭了脚本部分,导致仅将第一个脚本作为外部脚本源加载而忽略了第二个脚本。

更多关于哪些标签可以自我关闭的信息,请查看 html5 的 W3C 草案(尽管早期 HTML 版本中的定义没有什么不同):

http://www.w3.org/TR/html5/syntax.html#end-tags(8.1.2.1,第 6 点)

【讨论】:

【参考方案3】:

我刚刚在 jquery 响应式幻灯片插件 (http://responsive-slides.viljamis.com/) 上遇到了同样的问题。

我通过不使用 jQuery 短版 $(".rslides").responsiveSlides(.. 而是使用长版来修复它:jQuery(".rslides").responsiveSlides(...

所以将$切换为jQuery以免造成冲突或使用正确的jQuery无冲突模式(http://api.jquery.com/jQuery.noConflict/)

【讨论】:

谢谢,响应式幻灯片我也遇到了同样的问题。【参考方案4】:

我遇到了同样的问题。 我在 head 部分更改了脚本的顺序,它对我有用。 插件需要的每个脚本 - 都需要保持关闭。

例如:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
<script type="text/javascript" src="http://cloud.github.com/downloads/malsup/cycle/jquery.cycle.all.latest.js"></script>
<script type="text/javascript"> 
$(document).ready(function() 
    $('#slider').cycle(
            fx: 'fade' 
        );
    );
</script>

【讨论】:

【参考方案5】:

当我遇到这个问题时,是因为我试图使用实际函数代替匿名函数。

不正确:

$(document).on('change', "#MyId", MyFunction());

正确

$(document).on('change', "#MyId", MyFunction);

或者也正确,如果您需要传递事件对象或其他参数。

$(document).on('change', "#MyId", function(e)  MyFunction(e); );

【讨论】:

我相信在 JavaScript 中你仍然可以直接进入 MyFunction 而无需将其包装为匿名函数,只需像这样删除括号: $(document).on('change', "#MyId", MyFunction ); 非常感谢您提及这一点!我已经更新了答案并重构了我正在从事的项目。【参考方案6】:

实际上我认为您只下载了脚本的一部分。 在将整个脚本下载到 jquery 站点之前,请尝试选中“Core”复选框。

【讨论】:

【参考方案7】:

我有两次链接 jquery 的同样问题。后来的版本覆盖了我的插件。

我刚刚删除了它开始工作的后来的 jquery。

【讨论】:

我不小心也犯了这个错误【参考方案8】:

我也有这样的问题,因为我使用的是 IMG 标签和 UL 标签。

尝试将“角落”插件应用于$('#mydiv').corner()$('#myspan').corner()$('#myp').corner() 等元素,但不适用于$('#img').corner()! 此规则与将子 DIV 添加到指定元素以模拟圆角效果有关。我们知道 IMG 元素不能有任何子元素。

我通过在 div 中包装一个需要的元素并将 IMG 更改为带有 background: CSS 属性的 DIV 解决了这个问题。

祝你好运!

【讨论】:

【参考方案9】:

确保您使用的是正确版本的 jQuery 也是一个好主意。我最近获得了一个使用 jQuery 1.6.2 的项目,该项目不适用于 hoverIntent 插件。将其升级到最新版本为我解决了这个问题。

【讨论】:

【参考方案10】:

我发现我正在使用我的rendorTo div 的选择器来呈现我的列highcharts 图表。显然它为你添加了选择器,所以你只需要传递 id。

渲染到: $('#myGraphDiv') 到字符串 'myGraphDiv' 这修复了错误希望这对其他人也有帮助。

【讨论】:

以上是关于未捕获的类型错误:对象 #<Object> 没有方法“movingBoxes”的主要内容,如果未能解决你的问题,请参考以下文章

未捕获的类型错误:对象 [对象对象] 没有方法“弹出”

vuejs 3:未捕获的类型错误:对象(...)不是函数[重复]

JqueryUI 自动完成错误:未捕获的 TypeError:对象#<Object> 的属性“结果”不是函数

为啥dojo会发出这个错误?未捕获的类型错误:对象 [对象对象] 没有方法“查询”

未捕获的错误:不变违规:元素类型无效:对象

React 备忘录功能给出:- 未捕获的错误:元素类型无效:预期为字符串但得到:对象