【问题标题】:Why it is needed $ = jQuery为什么需要 $ = jQuery
【发布时间】:2011-10-27 04:18:30
【问题描述】:

问题几乎是理论上的。但上次我遇到了一些微妙的错误。当页面包含子框架并且父子框架都使用同一个js文件时,如果我没有在开始时设置$ = jQuery,这个js文件的功能就会崩溃。这里有什么诀窍?

谢谢!

【问题讨论】:

  • 我不完全确定你的意思,但$ = jQuery 已经在内部设置了。
  • 也许您使用的是非常旧的 jQuery 版本,或者脚本构建得很奇怪。您是否收到任何错误消息?
  • 好的!谢谢大家!我发现了我的错,问题出在 jQuery.noConflict()

标签: javascript jquery dollar-sign


【解决方案1】:

如果页面中的任何位置包含其他 JavaScript 库,它们可能会使用 $MootoolsPrototype 都使用 $

如果您包含 jQuery,然后您包含 Prototype,则 $ 变量将被覆盖,因此您必须设置 $ = jQuery 才能使任何 jQuery 代码工作:

<link rel="stylesheet" href="jQuery.js" />
<link rel="stylesheet" href="prototype.js" />
<script>$ = jQuery</script>

同样,正如@Guffa 所说,如果您在任何地方调用noConflict,它就会取消设置$ 变量。

理想情况下,我认为您不应该使用$ 变量,因为它可能会导致问题。只需执行以下操作:

jQuery.noConflict();
var jQ = jQuery;

然后像使用$ 一样使用jQ 变量。这样你就不会发生冲突了。

【讨论】:

    【解决方案2】:

    除非您从 $ 变量中删除了引用,否则不需要这样做。

    检查您是否在某处使用noConflict 方法将jQuery 与$ 变量解耦,或者使用名为$ 的其他东西(如函数)。

    【讨论】:

      猜你喜欢
      • 2011-08-01
      • 2020-06-13
      • 2018-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-09
      • 2021-02-02
      • 2020-05-03
      相关资源
      最近更新 更多