用应用的插件标记元素

Marking an element with applied plugin

本文关键字:元素 插件 应用      更新时间:2023-09-26

如何标记已应用插件的元素?假设我有这样的html:

    <a href="..." id="special-link">Link</a>

在javascript中,我会"apply a plugin"

    $("#special-link").selectify();

之后我想知道#special-link是否已经被选中了。我可以想到这些可能性:

  1. 为元素添加一个类。你可以简单地通过调用$(".selectified")来收集带有selectify的所有元素,也很容易通过调用$("elem"). hasclass ("selectified")来检查一个元素是否应用了插件。我能想到的一个缺点是你使用CSS (=design)来存储信息。
  2. 设置一个数据值。使用selectify插件查找所有元素有点困难,但是它在某种程度上是"更干净"的解决方案,因为你不使用CSS类来存储信息
  3. 插件本身负责记住元素。这听起来是最好的解决方案。然而,作为一个插件的创建者,你必须注意跟踪所有的元素,并把它们放在一个列表中。如果你有某种"销毁"方法,你还必须记住从列表中删除它们。

你认为哪一个是最好的解决方案?你还能想到上述方法的其他优点/缺点吗?

jQuery插件(较好的)通常只使用类来添加样式,并且它们在元素data(而不是data-属性)中存储代码实例

但是,为什么不直接使用现有的系统来创建jQuery插件,比如jQuery UI插件Widget Factory

他们为你做了繁重的工作:)