我正在编写一个jQuery插件,它“指向”DOM中的一定数量的节点.然而,如果我尝试让我的插件保持对一组节点的引用,我担心它们会“陈旧”.
(虽然我意识到JavaScript是垃圾收集并且不会崩溃,但我希望能够使我的列表保持最新状态,而不是坚持应该使用GC的东西.)
我遇到的第一件事就是可能会有某种钩子.但似乎没有一个看起来值得信赖的标准:
With JQuery,is it possible to have a function run when a DOM element calls .remove()?
Callback on the removal of an element from the DOM tree?
这让我想通过在它们上面放置一个类属性来维护节点列表.这样,他们在列表中的成员资格就会与他们一起旅行.但是,正如人们可能会担心的那样,这在枚举时可能在病理上很慢,这就是为什么你应该将你的查询表达为tags before classes.
除了潜在的性能问题之外,我想知道插件是否因为这种目的将类戳到DOM节点上而被认为是糟糕的形式,这与样式无关. (关于.data()的一个更好的事情是,它是相对带外的,除了这个列表问题,我正在使用它.)
这似乎是其他插件已经解决的常见问题.我很想使用类解决方案来获得它的“正确性”属性,即使它更慢.但是,是否有一种更快,更规范的方式可以提供两全其美的效果?