1

我想知道最合理的方法是存储一组 jquery 选择器并在使用时评估它们,而不是在声明时评估它们。

我目前将控件存储在外部文件中,然后在控件加载后动态加载外部脚本文件。

外部文件.js

var repo = {
    "grid_prevpage"     : $("button[data-qtip='Previous Page']")[0],
 };

我可以像这样在我的主脚本中成功使用它

mainscript.js

console.log(repo.grid_prevpage);

问题是所有控件最初都不存在。因为在加载文件时它们不存在,所以它们是未定义的,即使查询现在有结果。我想让我的数据结构包含选择器而不是选择器的结果,然后在使用时评估选择器。

性能不是问题。此应用程序需要灵活性和可读性,因此首选简洁的解决方案。

4

2 回答 2

3

我喜欢 Kevin B 的回答,但这里有一个有趣的选择:

将它们存放在封闭装置中。它的优点是语法稍微简单一些,并且像 Kevin 的解决方案一样,不会受到加载元素时的负面影响。

queries = {};
queries.grid_prevPage= function(){
    return $("button[data-qtip='Previous Page']");
}

console.log(queries.grid_prevPage());
于 2013-11-05T22:32:29.673 回答
2

与其存储 jquery 对象,不如存储 jquery 选择器,然后在需要时对其进行评估。

var repo = {
    "grid_prevpage" : "button[data-qtip='Previous Page']"
};
console.log($(repo.grid_prevpage));
于 2013-11-05T22:27:01.540 回答