/***jQuery Once插件v1.2* http://plugins.jquery.com/project/once**MIT和GPL许可证下的双重许可:* http://www.opensource.org/licenses/mit-license.php* http://www.gnu.org/licenses/gpl.html*/(函数($){变量缓存={},uuid=0;/***根据元素是否尚未处理来筛选元素。**@param id(参数id)*(可选)如果这是一个字符串,那么它将用作CSS类*应用于元素的名称,用于确定是否具有*已处理。元素将获得以下形式的类*“已处理id”。**如果id参数是一个函数,它将被传递给fn*参数和id将成为唯一标识符,表示为*数字。**当id既不是字符串也不是函数时,它将成为唯一的*标识符,描述为数字。然后元素的类将是*以“jquery-once-#-processed”的形式表示。**注意,id必须有效,才能用作元素的类名。*@param参数fn*(可选)如果给定,将为每个元素调用此函数*尚未处理。函数的返回值如下*逻辑为$.each()。返回true将继续到下一个匹配的*元素,同时返回false将完全中断*迭代。*/$.fn.once=函数(id,fn){if(typeof id!=“字符串”){//如果传递的ID不能用作CSS类,则生成数字ID。if(!(缓存中的id)){缓存[id]=++uuid;}//当未传递fn参数时,我们从id解释它。如果(!fn){fn=id;}id='jquery-oonce-'+缓存[id];}//从集合中删除已处理的元素。var名称=id+“-已处理”;var元素=this.not('.'+name).addClass(name);返回$.isFunction(fn)?元素。每个(fn):元素;};/***过滤已经处理过一次的元素。**@param id(参数id)*表示应使用的类名称的必需字符串*过滤元素时。这仅筛选已经具有*已被once函数处理。id应该与*最初传递给once()函数。*@参数fn*(可选)如果给定,将为以下每个元素调用此函数*尚未处理。函数的返回值如下*逻辑为$.each()。返回true将继续到下一个匹配的*元素,同时返回false将完全中断*迭代。*/$.fn.removeOnce=函数(id,fn){var name=id+“-已处理”;var elements=this.filter('.'+name).removeClass(name);返回$.isFunction(fn)?元素。每个(fn):元素;};})(jQuery);