【问题标题】:Typo3 7.6 JS partially not working after migrationTypo3 7.6 JS 迁移后部分无法正常工作
【发布时间】:2017-10-20 17:42:44
【问题描述】:

我们最近从 Typo3 6.2 LTS 迁移到 7.6 LTS。 现在我们的 js 有问题了。

我确实包含以下 .js 库:

  • jQuery 1.11
  • tablesorter(版本未知)
  • global.js(我确实调用 $(selector).tablesorter())

现在我确实收到了一个在 Typo3 6.2 LTS 上没有遇到的错误。 错误提示“$(selector).tablesorter 不是函数”。

我检查了我的 DOM 树/使用的 js 文件,我可以看到 Typo3 7.6 包含 jQuery 2.1.4。 您认为这可能是此功能的原因吗?

希望有人已经可以解决这个问题。非常感谢!

Greetz,帕德尔斯

【问题讨论】:

  • 这个错误是发生在前端还是TYPO3后端?

标签: javascript jquery typo3 tablesorter


【解决方案1】:

我已经看到这个问题manymanytimes(只链接我能快速找到的3个)。

本质上,第一个版本的 jQuery 获取了所有绑定到它的插件 ($.fn),所以当 jQuery 的第二个副本被加载时,文档就绪函数(位于 DOM 的下方)正在执行第二个版本不包含任何插件。

修复:删除 jQuery 的第二个副本,或使用jQuery.noConflict()。在this answer 中有更详细的解释。

【讨论】:

  • 好吧,我已经有了我的代码,就像他们的解决方案一样。我试过 $.noConflict() 但这没有用。我已经将我的代码打包到 window.onload = function() { ... } 但这并没有真正帮助。我已经更新了 jquery 和 tablesorter,但是没有用。我不明白...为什么它一直告诉我,即使我在 $(function() {}) 中调用 $(..).tablesoter() , $(...).tablesorter 是不是函数。我会发疯的:(
  • 请分享您正在使用的代码,这将帮助我们找到问题而不是猜测。
【解决方案2】:

问题是requireJS。

随着从 6.2 LTS 迁移到 7.6 LTS,Typo3 现在使用 requireJS。 jQuery、tablesorter(和其他一些库)正在将自己注册为模块。

我们不得不根据 Typo3 7.6 文档重写我们的代码。

【讨论】:

    猜你喜欢
    • 2019-12-13
    • 2016-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多