代码之家  ›  专栏  ›  技术社区  ›  significance

在小部件中使用MooTools库时的兼容性?

  •  0
  • significance  · 技术社区  · 14 年前

    我想使用Moools库在我正在构建的小部件中进行动画和Ajax。

    我计划让这个小部件自己写入页面,这样最终用户只需部署一行javascript。

    我关心的是,如果我的小部件在一个已经在使用另一个库的页面上使用,可能出现的兼容性问题。

    即使在脚本库已经加载的情况下,短测试也会显示问题,尽管jquery似乎不会导致问题。

    最好的解决办法是什么?

    有没有办法单独加载moootools,以便我可以将其用于我的目的?

    我看到jquery虽然对我来说不熟悉,但它具有很高的名称空间,因此可能更适合该任务,使用它是否会减轻任何潜在的问题?

    我可以复制并粘贴moootools到我的自执行函数中吗?

    注意:使用原型时出现以下错误是由于使用了mootool的setStyle方法造成的。

    element.style is undefined

    element.style.cssText += ';' + styles;

    2 回复  |  直到 12 年前
        1
  •  1
  •   Aaron Butacov    14 年前

    没有使用mootools的方法。开发人员已经明确表示,他们不打算使用名称空间mootools来运行侧原型,并且他们压扁了任何更改核心的尝试(参见1)。

    使用jquery或另一个名称空间库(我相信Dojo和Yui都是,但我可能弄错了),或者如果不需要开销,只需使用旧的方式构建自己的JS。

    1. https://mootools.lighthouseapp.com/projects/2706/tickets/219-mootools-namespace
        2
  •  1
  •   Dimitar Christoff    14 年前

    您不能“命名”moootools。它是一个原型库。你似乎表明你正试图将它与 prototype -在写作的时候,这仍然是一个典型的图书馆(有人说他们已经离开了这一点)。

    基本上,两个这样的框架彼此之间会有完全不可预测的结果,无法保证库的方法将优先于它们所更改的任何原型。

    mootools 能与快乐共存 jquery 或任何其他功能库。它还查找已经定义的内容 $ 如果不可用(比如,因为 $ === jQuery ,它将恢复为使用document.id()。

    如果您的页面已经使用 scriptaculous 那么你应该用它来做效果(在一个理想的世界里)。其次,你可以尝试 JQuery 但对于一个简单的小部件(或任何2个框架),这是很糟糕的。

    顺便说一句, AddThis 小部件曾经包含mootools一段时间以前,它没有破坏任何嵌入的页面,所以我认为它是可行的。遗憾的是,他们似乎已经搬到了自己的香草咖啡馆…