我创建了一个自定义jquery插件。 它一个接一个地显示元素。
我只是使用delay()
来完成它。
但是,只有第一次延迟起作用,之后所有其他元素在第一次延迟的同时出现。
我的插件
(function($){
$.fn.OneByOne = function( options ){
var defaults = {
startDelay:5,
duration: 1500,
nextDelay: 2000
};
var options = $.extend(defaults, options);
return this.each(function(){
var o =options;
var obj = $(this);
var a = $('a', obj);
var delay = o.startDelay;
obj.delay(delay).fadeIn(o.duration);
delay += o.nextDelay;
});
};
})(jQuery);
答案 0 :(得分:1)
将delay
var放在函数之外:
(function($){
$.fn.OneByOne = function( options ){
var defaults = {
startDelay:5,
duration: 1500,
nextDelay: 2000
};
var options = $.extend(defaults, options);
var delay = options.startDelay;
return this.each(function(){
var o =options;
var obj = $(this);
var a = $('a', obj);
obj.delay(delay).fadeIn(o.duration);
delay += o.nextDelay;
});
};
})(jQuery);