0

是否有关于如何存储实际 JQuery 选择器的最佳实践?不是他们返回的,而是选择器字符串本身。我们的项目中有大量选择器,我想为它们提供一个位置或一个对象,以便在需要时快速编辑它们。

像这样的东西:

LazySelectors = {
    candidate_photo : function() {
        return "#super-duper-selector";
    }
};

然后在许多地方或不同的脚本中引用它,例如:

$(LazySelectors.candidate_photo()).magic();

我已经在 J​​Spref 上对此进行了测试,并且速度更快。任何最佳实践或建议?

4

2 回答 2

2

我通常这样做:

jQuery(function(){
    LazySelectors  = {
        lazyFormSelector:"#lazyForm",
        createButtonSelector:"#lazyCreateButton",
        idSomeLevel:-1,
    }
    jQuery.extend(SomeOtherObject.LazyObject,LazySelectors);
})

并将整个 LazySelectors 对象保存在不同的 .js 文件中。

你可以像这样使用它:$(SomeOtherObject.LazyObject.lazyFormSelector)

另一件事:据我所知(我在这里可能错了),从性能的角度来看,最好缓存“包装”的 DOM 元素,否则每次你都会遍历 DOM$(SomeOtherObject.LazyObject.lazyFormSelector)

于 2013-04-29T08:36:25.840 回答
0

我认为最好的方法(更好的性能),直接使用字符串,不需要函数。

#references.js
var refCandidate_photo = $("#super-duper-selector");
于 2013-04-29T08:41:24.770 回答