1

当我使用 JQuery.load 时,它会破坏我的其他 JavaScript 库。我收到此错误:

TypeError: $.doTimeout is not a function

当我不使用 jQuery.load 时,它工作正常。

我不明白导致这种情况发生。似乎它无法从已经在源代码上呈现的 JavaScript 文件中找到函数。

脚本

<script type="text/javascript" src="/assets/js/modernizr-1.7.min.js"></script>
<script type="text/javascript" src="/assets/js/jquery.tmpl.js"></script>
<script type="text/javascript" src="/assets/js/jquery.ba-dotimeout.js"></script>
<script type="text/javascript" src="/assets/js/test1.js"></script>
<script type="text/javascript" src="/assets/js/test2.js"></script>

test1.js 内部

$.doTimeout("hoverOut");

test2.js 内部

$(".test").load("/test.aspx?param=" + someValue);

jquery.ba-dotimeout.js 是一个库

test1.js 使用该库来做它的花哨的东西

请帮忙

4

2 回答 2

1

这个问题与我苦苦挣扎了一周的问题非常相似。(现在我摆脱了它:)) jQuery UI“ $("#datepicker").datepicker 不是一个函数”

实际上,如果您包含 2 个 .js 库,则必须确保它们不包含相同功能的定义。

我不明白导致这种情况发生。似乎它无法从已经在源代码上呈现的 JavaScript 文件中找到函数。

覆盖。,也可能导致同样的问题。

于 2013-07-17T17:41:30.983 回答
0

看起来当您包含 test.aspx 时,包含了另一个 jQuery.js 副本,它覆盖了现有版本,从而导致插件丢失(它们在以前的版本上,但不在 test.js 添加的版本上.aspx)。

从 test.asmx 中删除 jquery.js,或者在 .load 中添加一个选择器来过滤结果。

$(".test").load("/test.aspx?param=" + someValue + " #targetdivtoload");
于 2013-07-17T17:48:57.543 回答