【问题标题】:jQuery plugins and Polymer elementsjQuery 插件和 Polymer 元素
【发布时间】:2014-04-16 23:19:31
【问题描述】:

我曾尝试在 Polymer 元素中封装几个 jQuery 插件,但迄今为止收效甚微。例如 select2 插件 (troubles discussed here) 和找到的 DataTables 插件 here。虽然没有 jQuery 依赖项会很好,但准备使用 jQuery 插件的环境确实很成熟,在 Web 组件库赶上之前,最好有包装器,将 Web 组件的所有优点带入深层jQuery 插件库。

我的问题是在 Polymer 元素中使用 jQuery 时是否有需要考虑的关键问题?更有用的是,有没有成功包装 jQuery 插件的 Polymer 元素的好例子?到目前为止,我对此类示例的搜索发现很少。

【问题讨论】:

    标签: jquery jquery-plugins polymer


    【解决方案1】:

    我的问题是使用 jQuery 时是否有任何关键问题 在需要考虑的 Polymer 元素中?

    可能最大的问题是围绕 Shadow DOM。当您在 Shadow DOM 中放置标记时,jQuery 无法选择它。许多插件假定它们的所有内容都在 Light DOM 中可用,因此可能会导致各种问题。希望新版本的 jQuery 能找到使用 Shadow DOM 的方法,这样这可能就不会成为问题了。

    更有用的是,有没有成功 Polymer 的好例子 包装 jQuery 插件的元素?

    如果您真的想使用 jQuery 插件 Polymer 元素,那么最好在 Light DOM 中构建您的 jQuery 插件,然后将它们作为 <content> 传递到您的元素中。 Here's a jsbin example 构造一个 Select2 元素并将其传递给 Polymer 元素,以便显示。

    【讨论】:

    • 感谢@robdodson,这个解释很有意义。我有一种预感,Shadow DOM 可能是我遇到问题的根源。猜猜这意味着将 jQuery 插件封装在 Web 组件中并非易事。也感谢 jsbin 示例。很高兴看到它工作,但如果插件需要作为内容注入,不确定将其包装在 Web 组件中是否有很多优势,除非我遗漏了一些东西。阻止它工作的正是通过 Shadow DOM 进行范围封装,这也是我希望让它工作的原因!
    • 我还会将遇到类似问题的任何人指向此相关thread
    • 这个 lightdom 示例破坏了 Web 组件自包含和模块化的整个目的。
    • 这取决于插件的作用,但我倾向于同意。当尝试将从未设计或打算与 Web 组件一起使用的东西组合时,这只是一个固有的问题。事情将不得不改变。我想有很多可以重写为 Web 组件的 jQuery 插件。是的,这是一项时间投资,但值得。
    • @robdodson 像polymer-project.org/components/polymer/polymer.html 这样的所有链接都是死亡!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-18
    • 1970-01-01
    • 2015-03-06
    • 1970-01-01
    相关资源
    最近更新 更多