【发布时间】:2012-03-19 15:29:56
【问题描述】:
我正在创建一个 jQuery 插件,它在第一次被调用时需要做很多事情(而且只是第一次)。我第一次需要从 dom 的一部分构建索引时,我只想这样做一次,然后在其余时间使用该索引。
理想情况下,我希望它像这样工作:
- 第一次调用时,设置运行函数 init() 并设置我在整个插件中需要的所有大量 var(所以我不能在 init() 中定义它们,因为它们在其余部分不可用插件)。
- 所有其他调用它的时候都应该使用第一次定义的变量。
首先我尝试了这个:
$.fn.search = function() {
if( !inited ) {
/*
Define everything that should only be defined the first time
*/
}
/*
All methods for my plugin, including an init() method
*/
if( !inited ) {
init();
var inited = true;
}
};
但我发现每次调用插件时所有变量都消失了,所以这不起作用。我知道我可以像这样存储东西:
$.fn.search.config = {
inited = false,
output,
search,
singleElems,
templates,
included,
scoreBoard,
container,
singles
}
并在 init() 中定义它们,但这是为插件存储内容的最佳方式吗?
【问题讨论】: