【问题标题】:JQuery.load breaks other javascriptJQuery.load 打破了其他 javascript
【发布时间】:2013-07-16 09:34:58
【问题描述】:

当我使用 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 使用该库来完成其花哨的工作

请帮忙

【问题讨论】:

  • 我的猜测是 test.aspx 包含一个覆盖第一个的第二个 jquery 库。
  • 你是对的。谢谢!如果您点击了“回答问题”按钮,我可以将其作为已接受的答案。

标签: javascript jquery


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

    这个问题和我挣扎了一周的问题很相似。(现在我摆脱了它:)) jQuery UI " $("#datepicker").datepicker is not a function"

    实际上,如果你包含 2 个 .js 库,你必须确定,它们不包含相同函数的定义。

    我不明白为什么会发生这种情况。好像找不到 JavaScript 文件中已经呈现的函数 源代码。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-25
      • 1970-01-01
      相关资源
      最近更新 更多