【问题标题】:JavaScript not being loaded. Tried everything I can think ofJavaScript 未加载。尝试了我能想到的一切
【发布时间】:2010-01-27 04:54:14
【问题描述】:

Swimwire.com 不再正确加载 JavaScript,因为我安装了对其 Social 模块 JomSocial 的更新。我敢肯定,这与 JomSocial 有关,因为在主页上没有 JavaScript 正常工作(顶部有一个蓝条,应该可以点击并包含“打开控制面板”字样,但它没有加载)。而如果我访问一个不显示 JomSocial 内容的页面,JavaScript 会很高兴地加载。

我昨天在这方面得到了一些帮助,但不幸的是,我仍然很困。我是 JavaScript 新手,Safari 向我抛出错误

TypeError:表达式“$”的结果 [未定义] 不是函数。 /modules/mod_rokslideshow/tmpl/slideshow.js:73TypeError: 表达式“$”的结果 [未定义] 不是函数。 2/media/system/js/mootools.js:54TypeError: 类型错误

我不太确定如何解释这一点。我确信 JomSocial 中的某些东西正在引起冲突,但我真的不知道如何解决这个问题。

杰克

【问题讨论】:

  • 在维护模式下我们无法测试。
  • 抱歉,再次打开网站。虽然仍在寻找答案。 :)

标签: php javascript css xhtml joomla


【解决方案1】:

有多个库定义了$;我知道 jQuery 和 Prototype 会这样做,但不确定 MooTools(我在您的错误消息中看到)。因此,根据该消息,我只能猜测您以某种方式加载了两个都使用 $ 的库。

对此的 jQuery 解决方案是使用 noConflict:http://docs.jquery.com/Core/jQuery.noConflict。不了解冲突的双方,并且自己无法访问该网站,这是我能做的最好的事情。


编辑:您是否尝试过 MooTools 建议的任何解决方案? http://mootools.net/blog/2009/06/22/the-dollar-safe-mode/

【讨论】:

  • Mootools 也定义了 $。新版本允许您使用 document.id 代替,以防其他人定义了 $
  • 感谢您的帮助,我再次打开了该网站 - 抱歉,我完全忘记了! :D 但是,如果你检查源代码,你会看到 jQuery.noConflict()... :(
【解决方案2】:

您的jQuery.noConflict() 很可能是在加载其他一些脚本并尝试使用$ 之后出现的。

另一件事...如果jQuery.noConflict() 包含在其他库之前,则它可能不起作用,就像在这种情况下一样。

【讨论】:

    【解决方案3】:

    您必须确保即使您的 jQuery 处于无冲突模式,您也必须让 MooTools 首先加载。如果加载 jQuery,将其置于无冲突模式,然后加载 MooTools,它将失败。我在书中写了一些关于此的文档:http://www.packtpub.com/files/learning-joomla-1-5-extension-development-sample-chapter-8-using-javascript-effects.pdf

    如果您确保在将 jQuery 添加到文档之前进行了以下调用,则它应该在 jQuery 之前加载 MooTools:

    JHTML::_('behavior.mootools');
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-26
      • 1970-01-01
      • 2019-09-19
      • 2019-11-03
      相关资源
      最近更新 更多